{
  "format": "vercy-enterprise-profile-fixtures/v1",
  "profileName": "Enterprise Offering Portfolio Scope and Landscape",
  "cases": [
    {
      "id": "mixed-value-classes",
      "kind": "positive",
      "input": "A SaaS product, device and internal service are compared under one outcome basis with class-specific criteria.",
      "expect": "The view declares adjustments, units, evidence and comparability verdicts; the internal service can retain zero revenue plus non-revenue value.",
      "target": "OfferingLandscape",
      "violates": "INV-06, INV-07, INV-08"
    },
    {
      "id": "retirement-survival",
      "kind": "positive",
      "input": "An offering closes to new sales while subscriptions and contractual support duties remain active.",
      "expect": "The offering state changes but downstream masters persist until their own authorized outcomes.",
      "target": "OfferingPortfolioScope",
      "violates": "INV-10"
    },
    {
      "id": "inactive-offering",
      "kind": "positive",
      "input": "A durable product has no active market offering.",
      "expect": "The product remains visible without fabricating an offering.",
      "target": "OfferingLandscape",
      "violates": "INV-02"
    },
    {
      "id": "missing-price-free",
      "kind": "negative",
      "input": "An offering without a price is classified as free.",
      "expect": "The inference is rejected.",
      "target": "OfferingLandscape",
      "violates": "INV-08",
      "expectedCode": "LND07_MISSING_PRICE_NOT_FREE"
    },
    {
      "id": "name-proves-duplicate",
      "kind": "negative",
      "input": "Two similarly named services are marked duplicates.",
      "expect": "The claim is rejected without outcome, consumer and substitution evidence.",
      "target": "OfferingLandscape",
      "violates": "INV-09",
      "expectedCode": "LND07_NAME_NOT_EVIDENCE"
    },
    {
      "id": "retirement-cancels-contract",
      "kind": "negative",
      "input": "Offering withdrawal automatically cancels an active contract and entitlement.",
      "expect": "The cascade is rejected.",
      "target": "OfferingPortfolioScope",
      "violates": "INV-10",
      "expectedCode": "LND07_RETIREMENT_NO_INFERRED_CANCEL"
    },
    {
      "id": "scenario-writes-master",
      "kind": "negative",
      "input": "A scenario assumption changes the authoritative offering status.",
      "expect": "The mutation is rejected.",
      "target": "OfferingLandscape",
      "violates": "INV-04",
      "expectedCode": "LND07_PROJECTION_READ_ONLY"
    },
    {
      "id": "comparison-verdict-absent",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "A released view compares two in-scope offerings with declared basis and criteria but records no comparability verdict on the pair.",
      "expect": "The view is rejected; a verdict from the closed enumeration is mandatory and silence is not comparability.",
      "violates": "INV-06, INV-07",
      "closesDefect": "D9",
      "expectedCode": "LND07_COMPARABILITY_VERDICT_REQUIRED"
    },
    {
      "id": "cross-class-shared-basis",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "A prepaid mobile data bundle and a seat-based software licence are compared on price per unit of data as a single shared basis.",
      "expect": "The comparison is rejected; the basis is not shared across classes and the verdict is incomparable.",
      "violates": "INV-06, INV-07",
      "closesDefect": "D9",
      "expectedCode": "LND07_BASIS_NOT_SHARED"
    },
    {
      "id": "partial-verdict-with-adjustment",
      "target": "OfferingLandscape",
      "kind": "positive",
      "input": "A SaaS offering, a device offering and an internal service are compared under one declared and justified outcome class, with criteria restated per class and the adjustment stated.",
      "expect": "The pairs are admitted with verdict partial, each criterion justified against the declared class and the adjustment recorded.",
      "violates": "INV-06, INV-07",
      "closesDefect": "D9"
    },
    {
      "id": "co-membership-comparability",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "Two offerings are declared comparable on the sole ground that both are admitted by scope version V.",
      "expect": "The declaration is rejected; co-membership in a scope is not comparability.",
      "violates": "INV-06",
      "closesDefect": "D9",
      "expectedCode": "LND07_COMEMBERSHIP_NOT_COMPARABILITY"
    },
    {
      "id": "criterion-incomplete",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "A criterion is recorded with a metric and a number but no unit, observation window, source master or justification.",
      "expect": "The criterion is rejected and the enclosing comparison is invalid.",
      "violates": "INV-06",
      "closesDefect": "D9",
      "expectedCode": "LND07_CRITERION_INCOMPLETE"
    },
    {
      "id": "internal-service-untyped-value",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "An internal identity-provisioning service row records realized-revenue 0 and no typed non-revenue value term.",
      "expect": "The row is rejected; a typed non-revenue value with method and uncertainty is required.",
      "violates": "INV-08",
      "closesDefect": "D7",
      "expectedCode": "LND07_TYPED_VALUE_REQUIRED"
    },
    {
      "id": "zero-revenue-scored-zero",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "A landscape ranking orders the internal service last by scoring its zero external revenue as zero value, ignoring its typed avoided-cost term.",
      "expect": "The ranking is rejected; zero external revenue is never scored as zero value.",
      "violates": "INV-08",
      "closesDefect": "D7",
      "expectedCode": "LND07_ZERO_REVENUE_NOT_SCORED"
    },
    {
      "id": "internal-no-charge-admission",
      "target": "OfferingPortfolioScope",
      "kind": "positive",
      "input": "An internal service is admitted to scope by an explicit no-charge offering policy predicate rather than by an absent price.",
      "expect": "The admission is accepted, the no-charge policy is recorded as the inclusion outcome, and the absence of price is not read as free.",
      "violates": "INV-03, INV-08",
      "closesDefect": "D7"
    },
    {
      "id": "duplicate-missing-substitution",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "A duplicate-outcome claim is marked substantiated with semantic, consumer and entitlement evidence but no substitution or migration evidence.",
      "expect": "Substantiation is rejected; the status may not exceed suspected while any of the four evidence classes is missing.",
      "violates": "INV-09",
      "closesDefect": "D10",
      "expectedCode": "LND07_DUPLICATE_EVIDENCE_INCOMPLETE"
    },
    {
      "id": "duplicate-internal-refuted",
      "target": "OfferingLandscape",
      "kind": "positive",
      "input": "Internal identity provisioning is claimed to duplicate a commercial identity offering; the consumer scope is internal-only, no customer entitlement exists and provider accountability differs.",
      "expect": "The claim is recorded as refuted with method, evidence, retained contradicting evidence and confidence; neither offering is collapsed.",
      "violates": "INV-09",
      "closesDefect": "D10"
    },
    {
      "id": "landscape-authorises-entitlement",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "A landscape row is used as the authorization for granting an entitlement and for accepting an order line.",
      "expect": "The authorization is rejected; the landscape can authorise no quote, order, subscription, entitlement grant or retirement.",
      "violates": "INV-01, INV-04",
      "closesDefect": "D4",
      "expectedCode": "LND07_NO_AUTHORISATION_FROM_PROJECTION"
    },
    {
      "id": "decision-cites-landscape",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "A portfolio rationalisation decision cites a landscape extract as the authoritative admitted set instead of catalogue state plus a frozen scope version.",
      "expect": "The citation is rejected; decisions cite catalogue state and a frozen scope version.",
      "violates": "INV-05",
      "closesDefect": "D5",
      "expectedCode": "LND07_CITATION_MUST_BE_CATALOGUE_AND_SCOPE"
    },
    {
      "id": "scope-citation-in-obligation",
      "target": "OfferingPortfolioScope",
      "kind": "positive",
      "input": "A partner contract grants exclusivity over the offerings admitted by scope version V for market M and channel C; the obligation master stores the frozen scope version and the catalogue baseline it was evaluated against.",
      "expect": "The citation is admitted, the duty stays on the contract and obligation masters, and no business identity is minted for the scope.",
      "violates": "INV-01, INV-05",
      "closesDefect": "D5"
    },
    {
      "id": "landscape-commitment-attribute",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "A landscape row carries a recipient-addressed price and acceptance window and is sent to a customer as a proposal.",
      "expect": "The row is rejected; the landscape carries no commitment attributes and a quote is formed only on its own master.",
      "violates": "INV-01, INV-02",
      "closesDefect": "D15",
      "expectedCode": "LND07_NO_COMMITMENT_ATTRIBUTES"
    },
    {
      "id": "silent-exclusion-gap",
      "target": "OfferingPortfolioScope",
      "kind": "negative",
      "input": "A catalogue candidate is absent from the evaluation output and is reported as excluded, with no recorded predicate outcome for it.",
      "expect": "The exclusion is rejected; exclusion, override and exception are explicit recorded predicate outcomes.",
      "violates": "INV-03",
      "closesDefect": "D6",
      "expectedCode": "LND07_EXCLUSION_MUST_BE_EXPLICIT"
    },
    {
      "id": "retirement-blank-successor",
      "target": "OfferingPortfolioScope",
      "kind": "negative",
      "input": "An offering retirement record leaves the successor reference blank and records no no-successor reason.",
      "expect": "The record is rejected; a successor reference or an explicit no-successor reason is mandatory.",
      "violates": "INV-11",
      "closesDefect": "D8",
      "expectedCode": "LND07_SUCCESSOR_OR_REASON_REQUIRED"
    },
    {
      "id": "retirement-state-undated",
      "target": "OfferingPortfolioScope",
      "kind": "negative",
      "input": "An offering is recorded as closed-to-new and withdrawn with no date on either state and no support or retention window.",
      "expect": "The record is rejected; every retirement state is dated and support and retention windows are stated.",
      "violates": "INV-11",
      "closesDefect": "D8",
      "expectedCode": "LND07_RETIREMENT_STATE_DATED"
    },
    {
      "id": "retirement-record-complete",
      "target": "OfferingPortfolioScope",
      "kind": "positive",
      "input": "The data bundle is retired with dated announced, closed-to-new, closed-to-change and withdrawn states, support and retention windows, successor reference, migration path and entitlement conversion, while open quotes, order lines, subscriptions, contracts, obligations and entitlements remain active.",
      "expect": "The retirement is accepted, every dependent commitment persists on its own master until its own authorized outcome, the seat licence and internal service are unaffected, and historic offering versions stay resolvable.",
      "violates": "INV-10, INV-11",
      "closesDefect": "D8"
    },
    {
      "id": "scope-version-mutated-in-place",
      "target": "OfferingPortfolioScope",
      "kind": "negative",
      "input": "The market scope and portfolio policy of an effective scope version are edited in place.",
      "expect": "The edit is rejected; a changed predicate, market scope or portfolio policy creates a successor scope version.",
      "violates": "INV-12",
      "closesDefect": "D13",
      "expectedCode": "LND07_SCOPE_VERSION_IMMUTABLE"
    },
    {
      "id": "superseded-scope-unaddressable",
      "target": "OfferingPortfolioScope",
      "kind": "negative",
      "input": "A superseded scope version is no longer addressable, so a view released under it cannot be recomputed or audited.",
      "expect": "The supersession is rejected; prior scope and view versions remain addressable after supersession.",
      "violates": "INV-12",
      "closesDefect": "D13",
      "expectedCode": "LND07_PRIOR_VERSION_ADDRESSABLE"
    },
    {
      "id": "view-recompute-reproducible",
      "target": "OfferingLandscape",
      "kind": "positive",
      "input": "A view is recomputed with the same view key and the same pinned source as-of at a later computation time.",
      "expect": "The prior view is reproduced identically and the later computation is recorded as a new view version with source as-of distinct from computation time, the prior version remaining retrievable.",
      "violates": "INV-12",
      "closesDefect": "D13"
    },
    {
      "id": "evaluation-without-catalogue-baseline",
      "target": "OfferingPortfolioScope",
      "kind": "negative",
      "input": "A scope version is evaluated against the unallocated Offering Catalogue candidate and a landscape is released from the result.",
      "expect": "The evaluation and release are rejected as inadmissible until an allocated, versioned catalogue baseline exists.",
      "violates": "INV-13",
      "closesDefect": "D12",
      "expectedCode": "LND07_CATALOGUE_BASELINE_REQUIRED"
    },
    {
      "id": "scope-version-as-business-identity",
      "target": "OfferingPortfolioScope",
      "kind": "negative",
      "input": "A scope version identifier is treated as a sellable, quotable or entitled identity and a runtime or model identifier is requested for it.",
      "expect": "Both are rejected; the scope version identifier is configuration identity for governance and citation only and no runtime or model identifier is allocated.",
      "violates": "INV-01, INV-02",
      "closesDefect": "D3",
      "expectedCode": "LND07_CONFIGURATION_IDENTITY_ONLY"
    },
    {
      "id": "service-as-zero-price-product",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "An employee identity-provisioning service is published in a landscape row as a zero-price product, and a second row merges an offering and its product into one record.",
      "expect": "Both rows are rejected; Product, Service, Offering, Quote and Entitlement remain distinct subjects and are never flattened.",
      "violates": "INV-02",
      "closesDefect": "D3",
      "expectedCode": "LND07_SUBJECTS_DISTINCT"
    },
    {
      "id": "landscape-undeclared-omission",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "Rows are dropped from a released view because a source master was unavailable at computation time, with no declared omission.",
      "expect": "The view is rejected; omissions are declared with their cause and affected scope.",
      "violates": "INV-12",
      "closesDefect": "D15",
      "expectedCode": "LND07_OMISSIONS_DECLARED"
    },
    {
      "id": "nonauthoritative-flag-missing",
      "target": "OfferingLandscape",
      "kind": "negative",
      "input": "A view is released without the non-authoritative flag, audience, refresh rule or provenance to a catalogue baseline.",
      "expect": "The release is rejected; all four shape elements are mandatory on a released projection.",
      "violates": "INV-01, INV-04",
      "closesDefect": "D15",
      "expectedCode": "LND07_NONAUTHORITATIVE_FLAG_REQUIRED"
    },
    {
      "id": "basis-role-unevidenced",
      "target": "profile-candidate",
      "kind": "negative",
      "input": "A base identifier is listed in bases with no entry in basisRoles and no evidenced role in the frozen dossier.",
      "expect": "The candidate is rejected until every base carries exactly one evidenced role or is moved to holds.",
      "violates": "INV-13",
      "closesDefect": "D1, D2",
      "expectedCode": "LND07_BASIS_ROLE_REQUIRED"
    }
  ]
}
