{
  "inputs": {
    "campaign_name": "",
    "offer": "",
    "buyer": "",
    "objective": "unknown",
    "desired_action": "unknown",
    "audience_temperature": "unknown",
    "placement_requirement": "unknown",
    "device_requirement": "unknown",
    "available_assets": [],
    "permissions": [],
    "proof_available": "unknown",
    "capture_layer": "unknown",
    "production_owner": "",
    "measurement_owner": "",
    "measurement_plan": {
      "delivery": {
        "state": "unknown"
      },
      "interaction": {
        "state": "unknown"
      },
      "site": {
        "state": "unknown"
      },
      "crm": {
        "state": "unknown"
      },
      "commercial": {
        "state": "unknown"
      }
    }
  },
  "result": {
    "validation": "valid",
    "contract_id": "maestro.linkedin-ad-types.decision.v1",
    "contract_version": "0.1.1-evidence",
    "decision": "hold",
    "primary": null,
    "backup": null,
    "backup_reason": {
      "reason_code": "HOLD-UNASSESSED",
      "reason": "Cannot assess a backup until objective and desired action are supplied."
    },
    "exclusions": [
      {
        "format": "single_image",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ],
        "reason_codes": [
          "HOLD-UNASSESSED"
        ]
      },
      {
        "format": "carousel_image",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ],
        "reason_codes": [
          "HOLD-UNASSESSED"
        ]
      },
      {
        "format": "video",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ],
        "reason_codes": [
          "HOLD-UNASSESSED"
        ]
      },
      {
        "format": "event",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ],
        "reason_codes": [
          "HOLD-UNASSESSED"
        ]
      },
      {
        "format": "document",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ],
        "reason_codes": [
          "HOLD-UNASSESSED"
        ]
      },
      {
        "format": "thought_leader",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ],
        "reason_codes": [
          "HOLD-UNASSESSED"
        ]
      },
      {
        "format": "article_newsletter",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "reason_codes": [
          "HOLD-UNASSESSED"
        ],
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ]
      },
      {
        "format": "conversation",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ],
        "reason_codes": [
          "HOLD-UNASSESSED"
        ]
      },
      {
        "format": "message",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ],
        "reason_codes": [
          "HOLD-UNASSESSED"
        ]
      },
      {
        "format": "spotlight",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ],
        "reason_codes": [
          "HOLD-UNASSESSED"
        ]
      },
      {
        "format": "follower",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "reason_codes": [
          "HOLD-UNASSESSED"
        ],
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ]
      },
      {
        "format": "text",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ],
        "reason_codes": [
          "HOLD-UNASSESSED"
        ]
      },
      {
        "format": "connected_tv",
        "reason_code": "HOLD-UNASSESSED",
        "reason": "Cannot assess format fit until objective and desired action are supplied.",
        "reason_codes": [
          "HOLD-UNASSESSED"
        ],
        "global_hold_codes": [
          "HOLD-MISSING-CAMPAIGN",
          "HOLD-MISSING-OFFER",
          "HOLD-MISSING-BUYER",
          "HOLD-MISSING-OBJECTIVE",
          "HOLD-MISSING-ACTION",
          "HOLD-MISSING-ASSETS",
          "HOLD-MISSING-PRODUCTION-OWNER",
          "HOLD-MISSING-MEASUREMENT-OWNER",
          "HOLD-MISSING-MEASUREMENT-PATH"
        ]
      }
    ],
    "qualified_alternatives": [],
    "asset_checklist": [],
    "capture_or_destination": {
      "layer": "unknown",
      "role": "none_or_unknown",
      "status": "unknown",
      "native_eligibility": null,
      "note": "Destination/capture choice is separate from creative format."
    },
    "next_action": "Complete the named intake requests; rerun the selector after updating supplied facts.",
    "measurement_layers": [
      {
        "layer": "delivery",
        "state": "unknown",
        "definition": null,
        "reason": null
      },
      {
        "layer": "interaction",
        "state": "unknown",
        "definition": null,
        "reason": null
      },
      {
        "layer": "site",
        "state": "unknown",
        "definition": null,
        "reason": null
      },
      {
        "layer": "crm",
        "state": "unknown",
        "definition": null,
        "reason": null
      },
      {
        "layer": "commercial",
        "state": "unknown",
        "definition": null,
        "reason": null
      }
    ],
    "owners": {
      "production": "",
      "measurement": ""
    },
    "open_questions": [
      "Name the campaign or working brief.",
      "Name the offer or message being promoted.",
      "Name the intended buyer or audience.",
      "Choose the campaign objective.",
      "Name the action the reader should take.",
      "Record which finished assets are actually available.",
      "Name the person responsible for the production handoff.",
      "Name the person responsible for outcome readback.",
      "Define applicable delivery, interaction, site, CRM and commercial checks."
    ],
    "open_requests": [
      {
        "id": "REQ-CAMPAIGN",
        "reason_code": "HOLD-MISSING-CAMPAIGN",
        "reason": "Name the campaign or working brief.",
        "owner_field": "production_owner",
        "evidence_request": "Supply one stable campaign or brief name."
      },
      {
        "id": "REQ-OFFER",
        "reason_code": "HOLD-MISSING-OFFER",
        "reason": "Name the offer or message being promoted.",
        "owner_field": "production_owner",
        "evidence_request": "Describe the approved offer or message the ad must carry."
      },
      {
        "id": "REQ-BUYER",
        "reason_code": "HOLD-MISSING-BUYER",
        "reason": "Name the intended buyer or audience.",
        "owner_field": "production_owner",
        "evidence_request": "Name the intended buyer or audience for this decision."
      },
      {
        "id": "REQ-OBJECTIVE",
        "reason_code": "HOLD-MISSING-OBJECTIVE",
        "reason": "Choose the campaign objective.",
        "owner_field": "production_owner",
        "evidence_request": "Supply one objective from the current contract."
      },
      {
        "id": "REQ-ACTION",
        "reason_code": "HOLD-MISSING-ACTION",
        "reason": "Name the action the reader should take.",
        "owner_field": "production_owner",
        "evidence_request": "Name one observable next action."
      },
      {
        "id": "REQ-ASSETS",
        "reason_code": "HOLD-MISSING-ASSETS",
        "reason": "Record which finished assets are actually available.",
        "owner_field": "production_owner",
        "evidence_request": "List finished, planned and unavailable assets separately."
      },
      {
        "id": "REQ-PRODUCTION-OWNER",
        "reason_code": "HOLD-MISSING-PRODUCTION-OWNER",
        "reason": "Name the person responsible for the production handoff.",
        "owner_field": "production_owner",
        "evidence_request": "Assign one accountable production owner."
      },
      {
        "id": "REQ-MEASUREMENT-OWNER",
        "reason_code": "HOLD-MISSING-MEASUREMENT-OWNER",
        "reason": "Name the person responsible for outcome readback.",
        "owner_field": "measurement_owner",
        "evidence_request": "Assign an owner for measurement readback."
      },
      {
        "id": "REQ-MEASUREMENT-PATH",
        "reason_code": "HOLD-MISSING-MEASUREMENT-PATH",
        "reason": "Define applicable delivery, interaction, site, CRM and commercial checks.",
        "owner_field": "measurement_owner",
        "evidence_request": "For each layer, define a source/check or give a reason it does not apply."
      }
    ],
    "sources": [
      {
        "url": "https://www.linkedin.com/help/lms/answer/a422880",
        "observed_at": "2026-10-01",
        "role": "dated objective availability matrix"
      },
      {
        "url": "https://business.linkedin.com/advertise/ads/ads-guide",
        "observed_at": "2026-10-01",
        "role": "inventory context; does not override objective matrix conflicts"
      }
    ],
    "native_state": "unknown",
    "native_checks": [],
    "fit_score_disclosure": "Editorial fit ordering only. Simplicity breaks ties only after weighted fit; the fixed format order resolves remaining ties. Scores and tie-breaks are not a performance ranking or prediction. Native availability, account acceptance, delivery and results are not established by this selector."
  }
}
