{"$id":"https://filterverdicts.com/schemas/evidence-bundle-v1.schema.json","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"description":"SPEC ONLY — no endpoint serves this document yet. This schema defines the precomputed evidence bundle planned as Filter Verdicts's first paid machine product (x402 v2 plan, decision D3): a transformation of an already-completed, already-gated research run — canonical facts, the resolved identifier chain (holder -> system -> replacement element -> trade name), source URLs with retrieval timestamps, the bounded registry query log, the correction revision the snapshot incorporates, a content hash over the canonical facts, and a manifest. It sells a proof artifact built on a completed check; it never changes a factual conclusion.","properties":{"contentHash":{"additionalProperties":false,"properties":{"algorithm":{"const":"sha256"},"canonicalization":{"description":"How the facts object is serialized before hashing (key order, whitespace, encoding).","type":"string"},"value":{"description":"SHA-256 of the canonical JSON serialization of the facts object.","pattern":"^[0-9a-f]{64}$","type":"string"}},"required":["algorithm","value"],"type":"object"},"correctionRevision":{"additionalProperties":false,"description":"The correction state this snapshot incorporates, so a buyer can tell whether the facts pre- or post-date a published correction.","properties":{"correctionsApplied":{"items":{"additionalProperties":false,"properties":{"date":{"format":"date","type":"string"},"summary":{"type":"string"},"title":{"type":"string"}},"required":["date","title"],"type":"object"},"type":"array"},"correctionsFeed":{"format":"uri","type":"string"}},"required":["correctionsApplied"],"type":"object"},"facts":{"additionalProperties":true,"description":"Canonical facts exactly as published in the free verdict record (schema filterverdict/verdict-v1) at snapshot time.","properties":{"brand":{"type":"string"},"capacityGallons":{"exclusiveMinimum":0,"type":"number"},"certifications":{"items":{"additionalProperties":true,"properties":{"certifier":{"type":"string"},"evidenceUrl":{"format":"uri","type":"string"},"standard":{"type":"string"},"status":{"enum":["live_certifier_listing","system_only_record","manufacturer_statement","third_party_reproduction","not_located_after_bounded_search","source_unavailable"],"type":"string"}},"required":["standard","certifier","status","evidenceUrl"],"type":"object"},"type":"array"},"name":{"type":"string"},"ratedLifeMonths":{"exclusiveMinimum":0,"type":"number"}},"type":"object"},"generatedAt":{"format":"date-time","type":"string"},"identifierChain":{"additionalProperties":false,"description":"The resolved identifier chain the registry check actually matched on. Registry verdicts are reached by resolving holder -> system -> replacement element before any trade-name comparison; every link present here must come from a cited source.","properties":{"holder":{"description":"Certificate holder as named in the certifier's listing.","type":"string"},"partNumbers":{"items":{"type":"string"},"type":"array"},"replacementElements":{"items":{"type":"string"},"type":"array"},"system":{"description":"Certification system code (e.g. a manufacturer's system number), where the listing uses one.","type":"string"},"tradeNames":{"items":{"type":"string"},"type":"array"}},"required":["holder"],"type":"object"},"manifest":{"additionalProperties":true,"properties":{"apiVersion":{"type":"string"},"bundleSchema":{"format":"uri","type":"string"},"canonicalUrl":{"format":"uri","type":"string"},"generator":{"type":"string"},"verdictSchema":{"format":"uri","type":"string"}},"required":["apiVersion","verdictSchema","bundleSchema"],"type":"object"},"queryLog":{"additionalProperties":true,"description":"The bounded registry search behind any not-located verdict in this bundle. Required when facts.certifications contains a not_located_after_bounded_search status.","properties":{"checkedAt":{"format":"date","type":"string"},"queryTerms":{"description":"Identifier-shaped terms actually queried, including at least one holder/system/element identifier.","items":{"type":"string"},"type":"array"},"registriesChecked":{"items":{"type":"string"},"type":"array"}},"type":"object"},"schema":{"const":"filterverdict/evidence-bundle-v1"},"slug":{"type":"string"},"snapshotId":{"description":"Stable identifier of the completed research snapshot this bundle was computed from. A bundle is immutable once issued; a re-check produces a new snapshotId.","type":"string"},"sources":{"items":{"additionalProperties":false,"properties":{"label":{"type":"string"},"retrievedAt":{"format":"date-time","type":"string"},"url":{"format":"uri","type":"string"}},"required":["label","url","retrievedAt"],"type":"object"},"type":"array"}},"required":["schema","snapshotId","slug","generatedAt","facts","identifierChain","sources","correctionRevision","contentHash","manifest"],"title":"Filter Verdicts evidence bundle v1 (SPEC ONLY)","type":"object"}