{
  "ok": true,
  "app": "scheduler",
  "contract": {
    "contract_id": "scheduler_app",
    "system_id": "scheduler_app",
    "display_name": "OWC Scheduler App",
    "owner": "Scheduler project",
    "owned_records": [
      "measure appointments",
      "install appointment options",
      "installer assignment",
      "duration rules",
      "schedule change requests"
    ],
    "may_request_from_accounts_core": [
      "client account context",
      "installer role/status/probation context",
      "staff scheduler permissions",
      "audit actor details"
    ],
    "must_not_own": [
      "quote pricing",
      "client proof documents",
      "inventory counts",
      "installer ladder promotion metrics"
    ],
    "required_core_response_fields": [
      "client_account_id",
      "installer_eligibility",
      "scheduler_permissions",
      "audit_actor"
    ],
    "handoff_inputs": [
      {
        "from_system_id": "measure_app",
        "payload": "measure scheduling request"
      },
      {
        "from_system_id": "quote_app",
        "payload": "approved job scope and duration hints"
      }
    ],
    "handoff_outputs": [
      {
        "to_system_id": "installer_field_app",
        "payload": "assigned job packet reference"
      },
      {
        "to_system_id": "people_access_core",
        "payload": "appointment scheduled, reassigned, canceled, and viewed audit events"
      }
    ],
    "required_audit_events": [
      "appointment_scheduled",
      "installer_assigned",
      "schedule_changed",
      "schedule_viewed"
    ],
    "production_gate": "Start with measures, then add installs after quote/job duration rules are defined."
  }
}