{
  "built_at": "2026-09-06T08:29:39Z",
  "candidates": [
    {
      "candidate_id": "EC-VISUAL-BY-ALBUM",
      "kind": "ESTATE_SURFACE",
      "generated_by": "MUTATION_OF:VISUAL",
      "proposal": "visual-by-album: group cover and still objects by the album they depict",
      "rationale": "294 image objects exist; album depiction is an evidenced grouping.",
      "state": "LIVE",
      "test": "Render visual-by-album pages and compare image_open rate to the undifferentiated visual rail."
    },
    {
      "candidate_id": "EC-VISUAL-CHRONOLOGY",
      "kind": "ESTATE_SURFACE",
      "generated_by": "MUTATION_OF:VISUAL",
      "proposal": "visual chronology over dated covers and stills",
      "rationale": "A chronology is a distinct discovery path from a similarity grid.",
      "state": "LIVE",
      "test": "Measure whether chronology pages produce return_visit or related_object_open into albums."
    },
    {
      "candidate_id": "EC-WATCH-TO-LISTEN",
      "kind": "ARCHITECTURE",
      "generated_by": "CROSS_MEDIUM:WATCH→LISTEN",
      "proposal": "WATCH → related performance-listen and soundtrack collection",
      "rationale": "Hosted performance encodings are first-party audio as well as video.",
      "state": "TESTING",
      "test": "Count listen_to_watch and audio_start from watch-origin sessions versus catalog-origin."
    },
    {
      "candidate_id": "EC-COLLECTION-VS-STREAM-RAIL",
      "kind": "EXPERIMENT",
      "generated_by": "ESTATE_EXPERIMENT",
      "proposal": "specialized collection surface vs universal collection rail inside Stream",
      "rationale": "Collections exist as first-class objects; the architecture question is where they are discovered.",
      "state": "TESTING",
      "test": "Compare collection_open on collections.oyotta path versus Stream crossings rail."
    },
    {
      "candidate_id": "EC-SEASONAL-2025",
      "kind": "SEASONAL_PERIOD",
      "generated_by": "TEMPORAL_REGIME",
      "proposal": "seasonal stream and collection for publication year 2025",
      "rationale": "500 objects share the 2025 regime.",
      "state": "LIVE",
      "test": "Archive/seasonal surface for 2025 must select a proper subset, not the whole catalogue."
    },
    {
      "candidate_id": "EC-SEASONAL-2026",
      "kind": "SEASONAL_PERIOD",
      "generated_by": "TEMPORAL_REGIME",
      "proposal": "seasonal stream and collection for publication year 2026",
      "rationale": "356 objects share the 2026 regime.",
      "state": "LIVE",
      "test": "Archive/seasonal surface for 2026 must select a proper subset, not the whole catalogue."
    },
    {
      "candidate_id": "EC-COMMERCE-READY-GATE",
      "kind": "ESTATE_SURFACE",
      "generated_by": "STRUCTURAL_GAP",
      "proposal": "shop surface when a genuine first-party offer exists",
      "rationale": "No owner cash is required to present a catalog; settlement stays a commodity rail.",
      "state": "BLOCKED_ON_DATA",
      "blocked_reason": "no verified purchasable offer with price and fulfillment",
      "test": "Do not render Product/Offer markup until a real offer is present."
    },
    {
      "candidate_id": "EC-LIVE-NO-PLACEHOLDER",
      "kind": "ESTATE_SURFACE",
      "generated_by": "STRUCTURAL_GAP",
      "proposal": "live.oyotta.org when a genuine event or premiere exists",
      "rationale": "A live hostname without an event is an empty website.",
      "state": "BLOCKED_ON_DATA",
      "blocked_reason": "no scheduled first-party live event",
      "test": "Create the host only with a dated event object."
    },
    {
      "candidate_id": "EC-VISUAL-VS-STREAM",
      "kind": "EXPERIMENT",
      "generated_by": "ESTATE_EXPERIMENT",
      "proposal": "dedicated visual surface vs visual inside universal Stream",
      "rationale": "Visual objects are 24.0% of the graph; the boundary is now testable.",
      "state": "TESTING",
      "test": "Compare image_open and related_object_open on the visual surface versus Stream visual rail."
    },
    {
      "candidate_id": "EC-VISUAL-BY-FILM",
      "kind": "ESTATE_SURFACE",
      "generated_by": "MUTATION_OF:VISUAL",
      "state": "LIVE",
      "proposal": "visual-by-film: stills grouped by hosted encoding and place film",
      "rationale": "Watch objects exist; visual grouping by film is a neighbour of visual-by-album.",
      "test": "image_open on by-film versus by-album versus undifferentiated grid."
    },
    {
      "candidate_id": "EC-LAB-WATCH-LISTEN",
      "kind": "ARCHITECTURE",
      "generated_by": "CROSS_MEDIUM:WATCH→LISTEN",
      "state": "TESTING",
      "proposal": "Dedicated Watch→Listen lab path versus catalog-origin Listen",
      "rationale": "Hosted encodings are audio as well as video.",
      "test": "audio_start from lab/watch-listen versus listen index."
    },
    {
      "candidate_id": "EC-GRAPH-FILTER-EXPLORER",
      "kind": "ESTATE_SURFACE",
      "generated_by": "OBJECT_FAMILY_THRESHOLD",
      "state": "LIVE",
      "proposal": "Dedicated graph explorer with class filters",
      "rationale": "Interact chronology is a different task from node-first graph walk.",
      "test": "related_object_open on graph versus interact."
    }
  ],
  "rule": "generate → build → deploy → instrument → observe → promote / mutate / merge / retire"
}
