{
  "title": "How each ODRL template is enforced on the EMPOWER-X node",
  "rule": "R5.2 rule 3: policies are expressible in ODRL 2.2; where the engine uses another language, a tested mapping is kept and published.",
  "mappings": [
    {
      "template": "open.odrl.json",
      "enforcedBy": "Provider node",
      "mechanism": "No credential check"
    },
    {
      "template": "participants.odrl.json",
      "enforcedBy": "Provider node",
      "mechanism": "Membership credential presented and checked against the status list; until all participants hold one, an allow list of wallet addresses (transitional rule)"
    },
    {
      "template": "restricted.odrl.json",
      "enforcedBy": "Provider node",
      "mechanism": "Allow list of wallet addresses in the offer's credentials section, or a role check on the membership credential"
    },
    {
      "template": "compute-to-data.odrl.json",
      "enforcedBy": "Compute-to-data environment",
      "mechanism": "Approved-algorithm list on the compute service; raw data never released; network access setting on the compute service"
    }
  ],
  "engineRules": "{{name and version of the platform policy rules (for example the policy engine rule set) that implement each mapping}}",
  "tested": "{{date and result of the last conformance test run (tests/conformance-tests.yaml)}}",
  "_note": "The technical team fills the two placeholders and re-tests after every change to access control (R5.6)."
}
