{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://hbfnetwork.org/external-validation/run-result.schema.json",
  "title": "HBF external reproduction run",
  "type": "object",
  "additionalProperties": true,
  "required": ["schema_version", "run_id", "generated_at", "environment", "source_tree_sha256", "artifact_sha256", "commands", "summary", "claim_boundary"],
  "properties": {
    "schema_version": {"const": "hbf-external-reproduction-run-1.0"},
    "run_id": {"type": "string", "minLength": 8},
    "generated_at": {"type": "string", "format": "date-time"},
    "identity_verified": {"const": false},
    "institutional_independence_verified": {"const": false},
    "automatic_maturity_promotion": {"const": false},
    "source_tree_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
    "artifact_sha256": {"type": "object", "minProperties": 8, "additionalProperties": {"type": "string", "pattern": "^[0-9a-f]{64}$"}},
    "commands": {"type": "array", "minItems": 4, "items": {"type": "object", "required": ["id", "argv", "passed", "duration_s", "output"]}},
    "summary": {"type": "object", "required": ["passed", "failed", "total", "all_hash_targets_present"]},
    "claim_boundary": {"type": "string", "minLength": 80}
  }
}

