{
  "schema_version": "pinto_cvd_visual_gate/v1",
  "receipt_id": "pinto-cvd-material-selector-2026-06-30",
  "source_surface": "/matsci/material-selector",
  "artifact_paths": [
    "/matsci-material-selector.html",
    "/matsci-material-selector.css",
    "/matsci-material-selector.js"
  ],
  "render_contract": "pinto_matsci_material_selector/v1",
  "evidence_grade": "preflight_contract",
  "redaction_posture": "public_teaching_values",
  "freshness": "2026-06-30",
  "jurisdiction": "paretosol.com public MatSci teaching demo",
  "authority_boundary": "accessibility gate only; not material design authority",
  "release_posture": "WITHHELD_SCREENSHOT_RECEIPTS",
  "forbidden_use": "Do not treat this CVD gate as proof until each required screenshot has a hash and reviewer result.",
  "required_channels": [
    "direct_text_label",
    "shape",
    "pattern",
    "position",
    "numeric_property_label"
  ],
  "color_policy": {
    "family_color_only_authority": false,
    "green_red_category_authority": false,
    "green_red_status_requires_icon_and_word": true
  },
  "required_variants": [
    {
      "variant": "grayscale",
      "screenshot_required": true,
      "screenshot_sha256": null,
      "review_result": "pending",
      "must_preserve": ["material family", "selected part", "posture", "chart label"]
    },
    {
      "variant": "deuteranope",
      "screenshot_required": true,
      "screenshot_sha256": null,
      "review_result": "pending",
      "must_preserve": ["material family", "selected part", "posture", "chart label"]
    },
    {
      "variant": "protanope",
      "screenshot_required": true,
      "screenshot_sha256": null,
      "review_result": "pending",
      "must_preserve": ["material family", "selected part", "posture", "chart label"]
    },
    {
      "variant": "tritanope",
      "screenshot_required": true,
      "screenshot_sha256": null,
      "review_result": "pending",
      "must_preserve": ["material family", "selected part", "posture", "chart label"]
    }
  ],
  "observed_inferred_split": {
    "observed": [
      "HTML declares CVD receipt link",
      "selector data uses compact mark labels, shape, pattern, text, and position channels",
      "Cloudflare static route maps /matsci/material-selector to the selector page",
      "material cards expose receipt ids and authority boundaries"
    ],
    "inferred": [
      "visual variants should remain decidable once screenshot receipts are generated"
    ],
    "blocked_claims": [
      "CVD release pass",
      "mobile pixel pass",
      "desktop pixel pass"
    ]
  }
}
