railiance-clock/specs/time-sample-v0.1.schema.json
tegwick 7af595b2cc Specify candidate signed time samples and trust lifecycle
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a09cbc-910e-77a0-b336-3130194350b3
2026-09-14 15:13:44 +02:00

63 lines
1.5 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "time-sample-v0.1 review candidate v0.1",
"type": "object",
"additionalProperties": false,
"required": [
"profile",
"authority_id",
"environment",
"nonce",
"epoch",
"policy_id",
"receive_unix_ns",
"send_unix_ns",
"error_ns",
"max_age_ns",
"quality"
],
"properties": {
"profile": {
"const": "railiance-clock-v0.1"
},
"authority_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}(?![\\s\\S])"
},
"environment": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}(?![\\s\\S])"
},
"nonce": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}(?![\\s\\S])"
},
"epoch": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}(?![\\s\\S])"
},
"policy_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}(?![\\s\\S])"
},
"receive_unix_ns": {
"type": "string",
"pattern": "^(0|[1-9][0-9]{0,18})(?![\\s\\S])"
},
"send_unix_ns": {
"type": "string",
"pattern": "^(0|[1-9][0-9]{0,18})(?![\\s\\S])"
},
"error_ns": {
"type": "string",
"pattern": "^(0|[1-9][0-9]{0,18})(?![\\s\\S])"
},
"max_age_ns": {
"type": "string",
"pattern": "^[1-9][0-9]{0,18}(?![\\s\\S])"
},
"quality": {
"const": "bounded"
}
}
}