{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "ECZ-ID TrustOps Actions",
  "description": "Public, surface-appropriate action manifest for the TrustOps acquisition surface. TrustOps owns acquisition, setup, checkout handoff, lifecycle and repair. It is not the Resolver and does not write canonical records; ECZ-ID Core writes canonical activation records. Payment is not proof. Re-check Resolver before reliance. Local policy decides.",
  "canonical_url": "https://trustops.ecocitizenz.com",
  "owners": {
    "trustops": "https://trustops.ecocitizenz.com",
    "resolver": "https://resolver.ecocitizenz.org",
    "developer_gateway": "https://developers.ecocitizenz.com"
  },
  "actions": [
    { "id": "start_setup", "owner": "trustops", "endpoint": "https://trustops.ecocitizenz.com/start", "http_method": "GET", "description": "Begin acquisition / setup. Acquisition and setup are owned by TrustOps." },
    { "id": "analyse_business_url", "owner": "trustops", "endpoint": "https://trustops.ecocitizenz.com/api/v1/url/analyse", "http_method": "POST", "description": "Analyse a business URL and receive the five-basket recommendation." },
    { "id": "create_agentic_checkout_intent", "owner": "trustops", "endpoint": "https://trustops.ecocitizenz.com/api/agentic-checkout/intent", "http_method": "POST", "description": "Submit a selected basket and receive a checkout handoff (or a fail-closed reason). The live checkout URL is created by the TrustOps checkout route." },
    { "id": "open_manifest", "owner": "trustops", "endpoint": "https://trustops.ecocitizenz.com/api/start/manifest", "http_method": "GET", "description": "Read the full acquisition manifest (catalogue, pricing, billing, endpoints)." },
    { "id": "read_agent_carry_card", "owner": "trustops", "endpoint": "/agent-carry-card.json", "http_method": "GET", "description": "Read the voluntary public Agent Carry Card reference object. Not proof, not tracking." },
    { "id": "recheck_resolver", "owner": "resolver", "endpoint": "https://resolver.ecocitizenz.org", "http_method": "GET", "description": "Re-check current public proof at the Resolver before reliance. Local policy decides." },
    { "id": "read_developer_schemas", "owner": "developer_gateway", "endpoint": "https://developers.ecocitizenz.com/schemas/index.json", "http_method": "GET", "description": "Read the public machine-readable schema index documented by the Developer Gateway." }
  ],
  "policy": {
    "payment_is_proof": false,
    "truth_authority": "backend_core",
    "provisioning_authority": "backend_core",
    "resolver_role": "resolver-verifiable after Backend-controlled provisioning",
    "recheck_before_reliance": true,
    "local_policy_decides": true,
    "trustops_is_resolver": false,
    "trustops_writes_truth": false
  }
}
