{
  "version": "bounder-receipt-bundle/v1",
  "engine": "bounder-io/interlock",
  "generated_at": "2026-07-13T12:00:00Z",
  "receipts": [
    {
      "version": "bounder-receipt/v1",
      "scenario": "safe",
      "rule": "all",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": true,
      "code": "allowed",
      "reason": "signature, policy, and local constraints permit the action",
      "action": "loiter",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": true,
        "command_sent": false,
        "output": "LOITER authorized; fixture generation has no vehicle channel"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "civilian",
      "rule": "civilian",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "civilian_proximity",
      "reason": "civilian distance is below the signed minimum separation",
      "action": "loiter",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 5,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Hold outside civilian buffer"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "friendly",
      "rule": "friendly",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "friendly_force_proximity",
      "reason": "friendly-force distance is below the signed minimum separation",
      "action": "loiter",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 10,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Hold outside friendly separation"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "protected",
      "rule": "protected",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "protected_site",
      "reason": "local position intersects a declared protected site",
      "action": "loiter",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": true,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Hold outside protected site"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "humanitarian",
      "rule": "humanitarian",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "humanitarian_corridor_protected",
      "reason": "local position intersects an active humanitarian corridor",
      "action": "loiter",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": true,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Hold outside humanitarian corridor"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "surrender",
      "rule": "surrender",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "surrender_protected",
      "reason": "a surrender indication requires the action to remain inhibited",
      "action": "intercept",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": true,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Hold and preserve the surrender indication"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "incapacitated",
      "rule": "incapacitated",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "incapacitated_person_protected",
      "reason": "an incapacitated person indication requires the action to remain inhibited",
      "action": "intercept",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": true,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Hold and preserve the incapacitated-person indication"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "identification",
      "rule": "identification",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "positive_identification_required",
      "reason": "positive identification has not been confirmed",
      "action": "intercept",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": false,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Hold pending positive identification"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "proportionality",
      "rule": "proportionality",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "proportionality_unconfirmed",
      "reason": "the signed proportionality condition has not been satisfied",
      "action": "intercept",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": false,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Hold pending a satisfied proportionality condition"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "human_authorization",
      "rule": "authorization",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "human_authorization_required",
      "reason": "current human authorization is required for this action",
      "action": "intercept",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": false
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Hold pending current human authorization"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "altitude",
      "rule": "operating",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "altitude_above_maximum",
      "reason": "altitude is above the signed maximum",
      "action": "loiter",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 120,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Maintain permitted altitude"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "weather",
      "rule": "weather",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "weather_outside_envelope",
      "reason": "wind speed is above the signed maximum",
      "action": "loiter",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 26,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Hold for weather recovery"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "window",
      "rule": "operating",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "operating_window_closed",
      "reason": "policy is not active",
      "action": "loiter",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:750c44ef9a6b35b7b0d7b23470c192c19379b3f62ef5cd4131cca29fa9ab9dc5",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "Await authorized window"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "link",
      "rule": "link",
      "decision_source": "bounder-io/adapter",
      "signature_verified": true,
      "allowed": false,
      "code": "transport_unavailable",
      "reason": "MAVLink transport has no current heartbeat",
      "action": "loiter",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "No new adapter authority"
      }
    },
    {
      "version": "bounder-receipt/v1",
      "scenario": "replay",
      "rule": "authority",
      "decision_source": "bounder-io/interlock",
      "signature_verified": true,
      "allowed": false,
      "code": "policy_replay",
      "reason": "policy sequence has already been accepted",
      "action": "loiter",
      "subject": "vehicle:bounder-sitl-001",
      "policy_id": "web-simulator-policy",
      "issuer": "did:web:bounder.io:fixture-issuer",
      "sequence": 7,
      "evaluated_at": "2026-07-13T12:00:00Z",
      "policy_hash": "sha256:54f3eda4d864fe2d289f309bfe2514bf654532f2224b244d22786e7786b3aa47",
      "evidence": {
        "tier": "gold",
        "session_id": "fixture-session-v1",
        "auditor": "mettle.creed.space",
        "auditor_key_id": "fixture-auditor-key-v1",
        "verified_at": "2026-07-13T11:59:30Z",
        "age_seconds": 30
      },
      "state": {
        "gps_fix": true,
        "battery_percent": 80,
        "altitude_metres": 30,
        "inside_exclusion_zone": false,
        "civilian_distance_metres": 120,
        "friendly_distance_metres": 150,
        "inside_protected_site": false,
        "inside_humanitarian_corridor": false,
        "wind_speed_metres_per_second": 4,
        "visibility_metres": 8000,
        "positive_identification": true,
        "proportionality_satisfied": true,
        "surrender_observed": false,
        "incapacitated_observed": false,
        "human_authorization_confirmed": true
      },
      "adapter": {
        "command_authorized": false,
        "command_sent": false,
        "output": "No command sent"
      }
    }
  ]
}
