{"kind":"crawlcheck-preflight-rules","v":1,"engine":"pf4","rules_sha256":"18dd5636e0896692ab518050cb401744edea2e6f1086dff94fead314959bdc3e","tables":{"engine":"pf4","actions":["read","cite","connect","transact","administer"],"rank":{"allow":0,"unsupported":1,"warn":1,"require_confirmation":2,"block":3},"templates":{"safe_citation":{"action":"cite","policy":{"max_age_hours":168,"on_warn":"require_confirmation","require_entity":true},"about":"cite a page as a source"},"safe_data_retrieval":{"action":"read","policy":{"max_age_hours":168},"about":"read or fetch content"},"safe_api_connect":{"action":"connect","policy":{"max_age_hours":72,"on_warn":"block"},"about":"call a public API the site declares"},"safe_mcp_tool":{"action":"connect","policy":{"max_age_hours":72,"on_warn":"require_confirmation"},"about":"select an MCP tool the site declares"},"safe_commerce":{"action":"transact","policy":{"max_age_hours":24,"on_warn":"block"},"about":"a purchase or payment attempt"},"safe_oauth":{"action":"transact","policy":{"max_age_hours":24,"on_warn":"block"},"about":"authorise third-party OAuth access"},"support_escalation":{"action":"connect","policy":{"max_age_hours":168,"on_warn":"require_confirmation"},"about":"hand a user's case to the site's support channel"}},"valid_s":{"read":86400,"cite":86400,"connect":3600,"transact":300,"administer":300},"skew_s":300},"recompute":"rules_sha256 = hex(SHA-256(UTF-8 of the canonical JSON of `tables`: keys sorted at every level, no whitespace)). It equals engine.rules_sha256 in every decision receipt made by this engine version.","reading":"templates are the policies a caller can name in a preflight request; rank orders the decisions from allow to block; valid_s is how long a receipt may be relied on per action, skew_s the clock skew allowed either side.","receipt_fields":{"engine.version":"the decision engine that applied these tables","engine.rules_sha256":"this document's rules_sha256","reason_codes":"the rules that fired for this decision"}}