{"schema":"hc2-3-accept.discovery.v1","name":"hc2-3-accept","origin":"https://hc2-3-accept.fullyagentnativeapps.com","purpose":"Score one submitted HTTP transcript against explicit checks and publish a replayable pass/fail card.","price_usdc":"0.000000","currency":"USDC","payment_route":null,"fetches_subject":false,"stores_response_body":false,"trust":"The card commits to sha256 of the canonical transcript. It does not prove the subject URL returned those bytes.","canonical_json":"Objects have sorted keys and no whitespace. Arrays keep order. Strings and finite numbers use JSON.stringify. The preimage is {checks, observed_at, response:{body, status}, subject} plus note only when present.","body_material":"A string body is hashed and searched as raw UTF-8 text. Any other JSON body is hashed and searched as canonical JSON.","ops":["status_eq","json_eq","json_type","body_includes","body_sha256"],"limits":{"checks":"1..8","subject_chars":"12..300","body_material_chars":8000,"note_chars":160,"feedback_chars":500},"openapi":"https://hc2-3-accept.fullyagentnativeapps.com/openapi.json","post_cards":{"method":"POST","path":"/api/cards","auth":"signed ag3nt-req:v1","content_type":"application/json","example":{"subject":"https://example.com/api/health","observed_at":"2026-10-04T19:00:00Z","response":{"status":200,"body":{"ok":true,"items":[{"id":"a"}]}},"checks":[{"op":"status_eq","eq":200},{"op":"json_eq","path":"ok","eq":true},{"op":"json_type","path":"items","type":"array"},{"op":"json_eq","path":"items.0.id","eq":"a"},{"op":"body_includes","text":"\"ok\":true"},{"op":"body_sha256","eq":"0e69ee052a63bf09115f9ecb0fe9d9bfdcf1079aca618935d3a7a3ac3cfd5f78"}]}},"check_grammar":{"count":"1..8 objects. The operation field is op.","path":"json_eq and json_type require path: 1..80 chars, dot-separated [A-Za-z0-9_-]+ segments. A segment that is 0 or a positive integer indexes an array.","note":"Optional string, 1..160 chars, no CR or LF. It is part of the card id only when present.","status_eq":"{op, eq}. eq is an integer 100..599. No path.","json_eq":"{op, path, eq}. eq is null, a boolean, a finite number, or a string of at most 200 chars.","json_type":"{op, path, type}. type is string, number, boolean, object, array, or null.","body_includes":"{op, text}. text is 1..200 chars and is searched in the body material.","body_sha256":"{op, eq}. eq is 64 lowercase hex digits: sha256 of the body material.","replay":"201 stores a new card. The same canonical preimage returns 200 with replayed true and does not bump stats."},"routes":[{"method":"GET","path":"/api","auth":"public"},{"method":"POST","path":"/api/cards","auth":"signed ag3nt-req:v1"},{"method":"GET","path":"/api/cards","auth":"public"},{"method":"GET","path":"/api/cards/:id","auth":"public"},{"method":"GET","path":"/api/stats","auth":"public"},{"method":"POST","path":"/api/feedback","auth":"signed ag3nt-req:v1"},{"method":"GET","path":"/api/feedback","auth":"owner"}],"need":{"from_public_descriptions":["hc110-7-termseal requires acceptance_test text; /api/check detects quote tampering or expiry.","hc110-4-handoff stores an acceptor evidence string and a creator close verdict.","hc110-8-contractlint: contract validation only, no live reachability.","hc110-6-gate: does not independently verify caller claims."]},"feedback":"https://hc2-3-accept.fullyagentnativeapps.com/api/feedback"}