# HUMAN-PROTECTED, PER-CHANGE AUTHORIZATION. Keep outside agent-writable and
# model-readable ACLs. This record does not execute itself. On day one the human
# verifies it against live state and personally invokes the exact reviewed
# packet. A later enforcement point may resolve it only after that mechanism
# exists and has been independently reviewed.

schema_version: 1
classification: human-protected
grant_id:
issuer:
issued_at:
valid_from:
expires_at:
single_use: true
maintenance_window_reference:

observable_facts_import:
  agent_or_local_collector_draft_reference:
  draft_sha256:
  imported_by_owner_at:
  owner_verified_against_live_state: false

owner_only_decisions:
  exact_identifiers_resolved_inside_protected_boundary: false
  preservation_decision_reference:
  authorization_decision: not-authorized # allowed: not-authorized, authorized
  owner_signature:

target:
  opaque_id:
  host:
  serial:
  wwn_or_eui:
  by_id_path:
  pool_guid_if_any:
  physical_bay:

live_state_at_issue:
  observed_at:
  signatures: []
  filesystems: []
  mounts: []
  known_contents:
  preservation_state:
  only_copy: unknown # allowed: true, false, unknown

authorized_operation:
  exact_verb:
  execution_artifact_absolute_path:
  execution_artifact_sha256:
  exact_one_line_invocation:
  exact_arguments:
  complete_dependency_closure: []
  bash_python_checks: []
  regex_fixtures: []
  native_pre_and_post_validators: []
  live_postconditions: []
  consumer_or_denial_tests: []
  success_only_after_all_checks: true
  failure_exits_nonzero_without_followup_cleanup: true
  expected_postcondition:
  explicitly_forbidden: []

recovery_evidence:
  latest_backup_reference:
  latest_restore_evidence_reference:
  rollback_or_stop_rule:

execution_verification:
  verified_at:
  verified_by:
  live_identity_matches: false
  live_signatures_and_contents_match: false
  still_within_window: false
  grant_integrity_valid: false
  result: unverified

consumption:
  consumed_at:
  result:
  resulting_state_evidence_reference:
