{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://fablepool.org/schemas/fpcf/v1/defs.schema.json", "title": "FablePool wire format v1 — shared definitions", "$defs": { "opId": { "type": "string", "pattern": "^fp:op:[0-9a-f]{64}$", "description": "SHA-256 (lowercase hex) of the canonical envelope minus the id member." }, "keyId": { "type": "string", "pattern": "^fp:key:ed25519:[0-9a-f]{64}$", "description": "Raw 32-byte Ed25519 public key, lowercase hex." }, "contentHash": { "type": "string", "pattern": "^fp:sha256:[0-9a-f]{64}$", "description": "SHA-256 content address of raw evidence bytes." }, "timestamp": { "type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$", "description": "RFC 3339 UTC, second precision, trailing Z. Calendar validity is checked semantically (ERR_TS_FORMAT)." }, "signature": { "type": "string", "pattern": "^[0-9a-f]{128}$", "description": "Raw 64-byte Ed25519 signature, lowercase hex." }, "confidence": { "type": "integer", "minimum": 0, "maximum": 1000, "description": "Confidence in milli-units (0 = none, 1000 = certain). Integers only; floats are forbidden by canonical form." }, "opType": { "enum": [ "evidence-ingest", "claim-assert", "correction", "refutation", "permission-grant", "revocation", "inference-call" ] }, "claimObject": { "type": ["string", "integer", "boolean", "object", "array", "null"], "description": "The value of a claim. Any canonical JSON value; non-integer numbers are excluded." }, "nonEmptyString": { "type": "string", "minLength": 1, "maxLength": 4096 } } }