{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://genesiscodelang.dev/spec/SELFHOST_EFFECT_POLICY_COMPOSITION_v0.1.schema.json",
  "title": "GenesisCode H2 self-host effect policy composition profile v0.1",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "artifact",
    "auditDate",
    "binding",
    "contentIdentitySha256",
    "decisionInventory",
    "hostOracle",
    "independentVerifier",
    "inventoryBinding",
    "inventoryRequestKind",
    "inventoryResultKind",
    "kind",
    "maxPolicyOperations",
    "nonclaims",
    "productionEntrypoints",
    "requestKind",
    "resourceBinding",
    "resourceRequestKind",
    "resourceResultKind",
    "residualDecisionInventory",
    "resultKind",
    "runtimeEvidence",
    "schema",
    "sourceModule",
    "sourceModules",
    "sourceSha256",
    "spec",
    "version"
  ],
  "properties": {
    "artifact": {"const": "selfhost/toolchain.gc"},
    "auditDate": {"type": "string", "format": "date"},
    "binding": {"const": "core/effects::policy-authority"},
    "contentIdentitySha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
    "decisionInventory": {
      "const": ["baseline-operation-admission", "candidate-operation-inventory", "canonical-log-cap-descriptor", "global-log-and-store-resource-limits", "global-log-store-refs-location-defaults", "global-store-credential-and-tls-policy", "global-store-remote-target-policy", "per-operation-allow-precedence", "per-operation-base-directory-selection", "per-operation-bridge-activation-policy", "per-operation-bridge-command-allowlist-policy", "per-operation-bridge-digest-pin-policy", "per-operation-bridge-invocation-policy", "per-operation-credential-and-tls-policy", "per-operation-crypto-policy", "per-operation-database-policy", "per-operation-enforcement-control-selection", "per-operation-ffi-allowlist-and-bound-policy", "per-operation-ffi-signed-policy-admission", "per-operation-ffi-signed-policy-metadata", "per-operation-gfx-first-party-profile-policy", "per-operation-gpu-backend-policy", "per-operation-gpu-fallback-policy", "per-operation-max-bytes-policy", "per-operation-network-policy", "per-operation-plugin-allowlist-policy", "per-operation-process-program-policy", "per-operation-xr-device-and-backend-policy", "runtime-resource-limits", "task-resource-limits-and-default-workers"]
    },
    "hostOracle": {
      "type": "object",
      "additionalProperties": false,
      "required": ["required", "removalTask"],
      "properties": {
        "required": {"const": false},
        "removalTask": {"const": "R4.2.d"}
      }
    },
    "independentVerifier": {"const": "scripts/lib/selfhost_effect_policy_composition.py"},
    "inventoryBinding": {"const": "core/effects::policy-inventory-authority"},
    "inventoryRequestKind": {"const": "genesis/effect-policy-inventory-request-v0.1"},
    "inventoryResultKind": {"const": "genesis/effect-policy-inventory-result-v0.1"},
    "kind": {"const": "genesis/selfhost-effect-policy-composition-v0.1"},
    "maxPolicyOperations": {"const": 4096},
    "nonclaims": {"type": "array", "minItems": 5, "uniqueItems": true, "items": {"type": "string"}},
    "productionEntrypoints": {"const": ["genesis", "genesis_wasi"]},
    "requestKind": {"const": "genesis/effect-policy-authority-request-v0.20"},
    "resourceBinding": {"const": "core/effects::resource-policy-authority"},
    "resourceRequestKind": {"const": "genesis/effect-resource-policy-request-v0.5"},
    "resourceResultKind": {"const": "genesis/effect-resource-policy-result-v0.5"},
    "residualDecisionInventory": {"type": "array", "minItems": 5, "uniqueItems": true, "items": {"type": "string"}},
    "resultKind": {"const": "genesis/effect-policy-authority-result-v0.20"},
    "runtimeEvidence": {
      "type": "object",
      "additionalProperties": false,
      "required": ["allocationLimit", "stepLimit", "timeoutSeconds"],
      "properties": {
        "allocationLimit": {"const": 32000000},
        "stepLimit": {"const": 20000000},
        "timeoutSeconds": {"const": 30}
      }
    },
    "schema": {"const": "docs/spec/SELFHOST_EFFECT_POLICY_COMPOSITION_v0.1.schema.json"},
    "sourceModule": {"const": "selfhost/effect_policy_authority_v1.gc"},
    "sourceModules": {"const": ["selfhost/effect_policy_crypto_v1.gc", "selfhost/effect_policy_network_v1.gc", "selfhost/effect_policy_plugin_v1.gc", "selfhost/effect_policy_ffi_v1.gc", "selfhost/effect_policy_bridge_v1.gc", "selfhost/effect_policy_gpu_v1.gc", "selfhost/effect_policy_gfx_v1.gc", "selfhost/effect_policy_xr_v1.gc", "selfhost/effect_policy_resource_authority_v1.gc", "selfhost/effect_policy_authority_v1.gc"]},
    "sourceSha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
    "spec": {"const": "docs/spec/SELFHOST_EFFECT_POLICY_COMPOSITION_v0.1.md"},
    "version": {"const": "0.1.27"}
  }
}
