BILLBOARD 1 — placeholder greenscreen
Schema preview — belum terhubung ke OLV

Website ↔ Nita Context

Skema dummy agar Nita bisa membaca konteks website secara aman di live.

Halaman ini mendokumentasikan SCHEMA context yang akan dipakai bridge website ke Nita saat live. Bukan integrasi nyata: ini adalah preview statis untuk transparansi.

Pipeline Context

  1. 1 Event website Aktivitas di website (membership, verifikasi, leaderboard, spend NP, pull kartu, service) menghasilkan event.
  2. 2 Filter privasi Setiap event diberi salah satu dari 4 visibility level: public, stream_safe, private, sensitive.
  3. 3 Stream-safe context Event public dan stream_safe dipakai untuk saran line Nita. Event private dan sensitive di-redact total.
  4. 4 Nita live line Saran line yang lolos filter masuk prompt queue live Nita. Private memory lane tetap aman.
Private memory lane DeepTalk + private service SELALU ditulis ke private memory lane. Tidak pernah muncul di live.

Visibility Levels

Sample Events

3 public · 4 stream_safe · 1 private · 2 sensitive

ID Kategori Visibility Boleh live Boleh overlay Boleh memory Saran Nita line
evt-membership-vip-join membership stream_safe Ya Ya Ya Widih ada VIP kita nih, Dika!
evt-verification-reminder verification stream_safe Ya Tidak Ya Weh Dika, kamu belum verif. Kapan mau verif di nitavtuber.com?
evt-leaderboard-rank1 leaderboard public Ya Ya Ya Dika top 1 leaderboard ya? Gokil.
evt-economy-monthly-spend economy stream_safe Ya Tidak Ya Dika udah spend 40k NP di Rollate… kecanduan gacha ya?
evt-card-pull-s card public Ya Ya Ya Siapa nih yang tadi dapat kartu S? Keira!
evt-card-pull-sss card public Ya Ya Ya Rara dapet SSS?! Selamat ya Rara!
evt-service-public-voice service stream_safe Ya Tidak Ya Dika pake suaraku buat alarm? Cie cie~
evt-deeptalk-private-vent deeptalk sensitive Tidak Tidak Ya 🔒 Event ini di-block dari live mention. Konten tidak ditampilkan.
evt-private-service-detail service private Tidak Tidak Ya 🔒 Event ini di-block dari live mention. Konten tidak ditampilkan.
evt-system-dummy-note system sensitive Tidak Tidak Tidak 🔒 Event ini di-block dari live mention. Konten tidak ditampilkan.

Nita Suggestion Preview

5 saran live Nita yang aman (public + stream_safe saja). DeepTalk dan sensitive TIDAK ditampilkan di sini.

🔒 DeepTalk / private / sensitive Event ini di-block dari live mention. Konten tidak ditampilkan.

Policy Rules

  1. public Public boleh tampil live
    Event dengan visibility public boleh ditampilkan di overlay dan dikutip langsung oleh Nita di live.
  2. stream_safe Stream-safe boleh disebut dengan nada playful
    Event stream_safe boleh Nita sebut secara playful di live, tanpa overshare detail privat.
  3. private Private tidak pernah live
    Event private hanya boleh diakses oleh Nita dan viewer di konteks private langsung. Tidak boleh dikutip di live.
  4. sensitive Sensitive butuh consent gate
    Event sensitive tidak pernah live, tidak pernah overlay, dan butuh consent eksplisit sebelum memory write.

Sanitized Payload Preview

Preview payload yang akan dikirim ke Nita setelah filter privasi. Event sensitive di-redact total — yang tersisa hanya hitungan dan kategori, BUKAN konten.

Event live-safe 7
Event di-redact 3
Kategori di-redact deeptalk, service, system
Show sanitized JSON preview
{
  "contextVersion": 1,
  "issuedAt": "2026-07-03T00:00:00+07:00",
  "stream": {
    "streamId": "nita-mock-stream-001",
    "platform": "mock",
    "language": "id",
    "topic": "Live bareng Nita — dummy schema preview",
    "moderatorPresent": true
  },
  "viewer": {
    "idHint": "viewer-anon-dika",
    "displayName": "Dika",
    "membership": "vip",
    "verified": false,
    "seasonXpRank": 1
  },
  "liveSafeEvents": 7,
  "redactedEventCount": 3,
  "redactedCategories": [
    "deeptalk",
    "service",
    "system"
  ]
}
Show raw payload JSON (debug)
{
  "contextVersion": 1,
  "issuedAt": "2026-07-03T00:00:00+07:00",
  "website": {
    "domain": "nitavtuber.com",
    "buildHash": "dummy",
    "tier": "public-preview-dummy"
  },
  "stream": {
    "streamId": "nita-mock-stream-001",
    "platform": "mock",
    "language": "id",
    "topic": "Live bareng Nita — dummy schema preview",
    "moderatorPresent": true
  },
  "viewer": {
    "idHint": "viewer-anon-dika",
    "displayName": "Dika",
    "language": "id",
    "membership": "vip",
    "verified": false,
    "seasonXpRank": 1,
    "totalXpRank": 7,
    "monthlySpend": 40000,
    "nitaPointBalance": 12500,
    "cardCount": 80
  },
  "visibilityPolicy": [
    {
      "id": "rule-public-live",
      "visibility": "public",
      "name": "Public boleh tampil live",
      "name_en": "Public is live-safe",
      "description": "Event dengan visibility public boleh ditampilkan di overlay dan dikutip langsung oleh Nita di live.",
      "description_en": "Events marked public are safe to show on stream overlay and to be quoted live by Nita.",
      "examples": [
        "Peringkat leaderboard publik",
        "Pull kartu publik",
        "Reveal kartu S/SS/SSS publik",
        "Badge/title publik",
        "Event win publik"
      ],
      "examples_en": [
        "Public leaderboard rank",
        "Public card pull",
        "Public S/SS/SSS reveal",
        "Public badge/title",
        "Public event win"
      ]
    },
    {
      "id": "rule-streamsafe-playful",
      "visibility": "stream_safe",
      "name": "Stream-safe boleh disebut dengan nada playful",
      "name_en": "Stream-safe can be mentioned with playful tone",
      "description": "Event stream_safe boleh Nita sebut secara playful di live, tanpa overshare detail privat.",
      "description_en": "stream_safe events can be mentioned by Nita with a playful tone, without oversharing private details.",
      "examples": [
        "Viewer VIP",
        "Belum verifikasi",
        "Spend NP bulan ini",
        "Progres koleksi kartu",
        "Pakai layanan publik (TTS, Snack)"
      ],
      "examples_en": [
        "Viewer is VIP",
        "Not yet verified",
        "Monthly NP spend",
        "Card collection progress",
        "Used a public-safe service (TTS, Snack)"
      ]
    },
    {
      "id": "rule-private-never-live",
      "visibility": "private",
      "name": "Private tidak pernah live",
      "name_en": "Private is never live",
      "description": "Event private hanya boleh diakses oleh Nita dan viewer di konteks private langsung. Tidak boleh dikutip di live.",
      "description_en": "Private events are visible only to Nita and the viewer in direct private context. Never quoted on stream.",
      "examples": [
        "Preferensi privat",
        "Detail layanan private",
        "Nickname yang belum disetujui live",
        "Reminder privat"
      ],
      "examples_en": [
        "Private preference",
        "Private service detail",
        "Nickname not approved for live",
        "Private reminder"
      ]
    },
    {
      "id": "rule-sensitive-consent-gate",
      "visibility": "sensitive",
      "name": "Sensitive butuh consent gate",
      "name_en": "Sensitive requires consent gate",
      "description": "Event sensitive tidak pernah live, tidak pernah overlay, dan butuh consent eksplisit sebelum memory write.",
      "description_en": "Sensitive events are never live, never overlay, and require explicit consent before any memory write.",
      "examples": [
        "DeepTalk",
        "Isu mental/emotional",
        "Detail kehidupan personal",
        "Data personal",
        "Detail payment",
        "Kontak/alamat"
      ],
      "examples_en": [
        "DeepTalk",
        "Mental/emotional struggle",
        "Personal life details",
        "Personal data",
        "Payment detail",
        "Address/contact"
      ]
    }
  ],
  "events": [
    {
      "id": "evt-membership-vip-join",
      "type": "membership.vip_join",
      "category": "membership",
      "visibility": "stream_safe",
      "viewerId": "viewer-anon-dika",
      "viewerDisplayName": "Dika",
      "title": "Dika upgraded to VIP Pass",
      "title_en": "Dika upgraded to VIP Pass",
      "summary": "Viewer baru saja aktivasi VIP Pass bulan ini. +100% Season XP, +100% Total XP, +50% NP earning, 500 NP daily, 5% cashback.",
      "summary_en": "Viewer just activated VIP Pass this month. +100% Season XP, +100% Total XP, +50% NP earning, 500 NP daily, 5% cashback.",
      "nitaLineSuggestion": "Widih ada VIP kita nih, Dika!",
      "nitaLineSuggestion_en": "Whoa, we've got a VIP here, Dika!",
      "safeToMentionLive": true,
      "allowOverlay": true,
      "allowMemoryWrite": true,
      "requiresConsent": false,
      "source": "membership",
      "createdAt": "2026-07-03T10:00:00+07:00",
      "metadata": {
        "tier": "vip",
        "priceId": "Rp49.000 / bulan",
        "dailyNp": 500
      }
    },
    {
      "id": "evt-verification-reminder",
      "type": "verification.not_verified",
      "category": "verification",
      "visibility": "stream_safe",
      "viewerId": "viewer-anon-dika",
      "viewerDisplayName": "Dika",
      "title": "Dika belum verifikasi akun",
      "title_en": "Dika has not verified their account",
      "summary": "Akun belum menyelesaikan verifikasi. Verifikasi dibutuhkan untuk klaim reward nyata nanti.",
      "summary_en": "Account has not completed verification. Verification is required to claim real rewards later.",
      "nitaLineSuggestion": "Weh Dika, kamu belum verif. Kapan mau verif di nitavtuber.com?",
      "nitaLineSuggestion_en": "Hey Dika, you haven't verified yet. When are you gonna verify at nitavtuber.com?",
      "safeToMentionLive": true,
      "allowOverlay": false,
      "allowMemoryWrite": true,
      "requiresConsent": false,
      "source": "verification",
      "createdAt": "2026-07-03T10:05:00+07:00",
      "metadata": {
        "verified": false
      }
    },
    {
      "id": "evt-leaderboard-rank1",
      "type": "leaderboard.season_rank",
      "category": "leaderboard",
      "visibility": "public",
      "viewerId": "viewer-anon-dika",
      "viewerDisplayName": "Dika",
      "title": "Dika peringkat #1 Season XP",
      "title_en": "Dika is rank #1 on Season XP",
      "summary": "Dika memimpin leaderboard Season XP bulan ini. Rank 1–3 box = S–SSS range.",
      "summary_en": "Dika is leading the Season XP leaderboard this month. Rank 1-3 box = S-SSS range.",
      "nitaLineSuggestion": "Dika top 1 leaderboard ya? Gokil.",
      "nitaLineSuggestion_en": "Dika top 1 on the leaderboard? Insane.",
      "safeToMentionLive": true,
      "allowOverlay": true,
      "allowMemoryWrite": true,
      "requiresConsent": false,
      "source": "leaderboard",
      "createdAt": "2026-07-03T10:10:00+07:00",
      "metadata": {
        "rank": 1,
        "tier": "Supernova"
      }
    },
    {
      "id": "evt-economy-monthly-spend",
      "type": "economy.monthly_spend",
      "category": "economy",
      "visibility": "stream_safe",
      "viewerId": "viewer-anon-dika",
      "viewerDisplayName": "Dika",
      "title": "Dika spend 40.000 NP bulan ini",
      "title_en": "Dika spent 40,000 NP this month",
      "summary": "Total Monthly Spend Dika 40.000 NP. Tone: playful, bukan shaming. Batas moderasi: jangan sebut angka exact kalau > 100.000 NP.",
      "summary_en": "Dika's total Monthly Spend is 40,000 NP. Tone: playful, not shaming. Moderation cap: don't quote exact numbers above 100,000 NP.",
      "nitaLineSuggestion": "Dika udah spend 40k NP di Rollate… kecanduan gacha ya?",
      "nitaLineSuggestion_en": "Dika's already spent 40k NP on Rollate… addicted to gacha huh?",
      "safeToMentionLive": true,
      "allowOverlay": false,
      "allowMemoryWrite": true,
      "requiresConsent": false,
      "source": "shop",
      "createdAt": "2026-07-03T10:15:00+07:00",
      "metadata": {
        "amount": 40000,
        "currency": "NP"
      }
    },
    {
      "id": "evt-card-pull-s",
      "type": "card.pull_s",
      "category": "card",
      "visibility": "public",
      "viewerId": "viewer-anon-keira",
      "viewerDisplayName": "Keira",
      "title": "Keira dapat kartu S",
      "title_en": "Keira got an S card",
      "summary": "Pull kartu S dari Premium Rollate. Worth mentioning publicly.",
      "summary_en": "Pulled an S card from Premium Rollate. Worth mentioning publicly.",
      "nitaLineSuggestion": "Siapa nih yang tadi dapat kartu S? Keira!",
      "nitaLineSuggestion_en": "Who just got an S card? Keira!",
      "safeToMentionLive": true,
      "allowOverlay": true,
      "allowMemoryWrite": true,
      "requiresConsent": false,
      "source": "rollate",
      "createdAt": "2026-07-03T10:20:00+07:00",
      "metadata": {
        "rarity": "S",
        "cardId": "NITA-091"
      }
    },
    {
      "id": "evt-card-pull-sss",
      "type": "card.pull_sss",
      "category": "card",
      "visibility": "public",
      "viewerId": "viewer-anon-rara",
      "viewerDisplayName": "Rara",
      "title": "Rara dapat kartu SSS",
      "title_en": "Rara got an SSS card",
      "summary": "Pull kartu SSS. SSS sangat langka (~0.1% chance). Overlay animasi boleh.",
      "summary_en": "Pulled an SSS card. SSS is extremely rare (~0.1% chance). Overlay animation allowed.",
      "nitaLineSuggestion": "Rara dapet SSS?! Selamat ya Rara!",
      "nitaLineSuggestion_en": "Rara got SSS?! Congrats Rara!",
      "safeToMentionLive": true,
      "allowOverlay": true,
      "allowMemoryWrite": true,
      "requiresConsent": false,
      "source": "rollate",
      "createdAt": "2026-07-03T10:25:00+07:00",
      "metadata": {
        "rarity": "SSS",
        "cardId": "NITA-099",
        "overlayAnim": "sss_reveal"
      }
    },
    {
      "id": "evt-service-public-voice",
      "type": "service.voice_alarm",
      "category": "service",
      "visibility": "stream_safe",
      "viewerId": "viewer-anon-dika",
      "viewerDisplayName": "Dika",
      "title": "Dika pakai Nita Voice Alarm",
      "title_en": "Dika used Nita Voice Alarm",
      "summary": "Generate file audio suara Nita untuk alarm HP. Layanan publik, boleh disebut playful.",
      "summary_en": "Generated a Nita voice file for phone alarm. Public-safe service, can be mentioned playfully.",
      "nitaLineSuggestion": "Dika pake suaraku buat alarm? Cie cie~",
      "nitaLineSuggestion_en": "Dika uses my voice as an alarm? Aww~",
      "safeToMentionLive": true,
      "allowOverlay": false,
      "allowMemoryWrite": true,
      "requiresConsent": false,
      "source": "service",
      "createdAt": "2026-07-03T10:30:00+07:00",
      "metadata": {
        "serviceId": "tts",
        "chars": 87
      }
    },
    {
      "id": "evt-deeptalk-private-vent",
      "type": "service.deeptalk_used",
      "category": "deeptalk",
      "visibility": "sensitive",
      "viewerId": "viewer-anon-dika",
      "viewerDisplayName": "Dika",
      "title": "Dika pakai DeepTalk",
      "title_en": "Dika used DeepTalk",
      "summary": "[CONTENT REDACTED — DeepTalk body never leaves protected memory lane]",
      "summary_en": "[CONTENT REDACTED — DeepTalk body never leaves protected memory lane]",
      "nitaLineSuggestion": null,
      "nitaLineSuggestion_en": null,
      "safeToMentionLive": false,
      "allowOverlay": false,
      "allowMemoryWrite": true,
      "requiresConsent": true,
      "source": "service",
      "createdAt": "2026-07-03T10:35:00+07:00",
      "metadata": {
        "serviceId": "deeptalk",
        "durationSec": 240,
        "redacted": true
      }
    },
    {
      "id": "evt-private-service-detail",
      "type": "service.private_reminder_set",
      "category": "service",
      "visibility": "private",
      "viewerId": "viewer-anon-dika",
      "viewerDisplayName": "Dika",
      "title": "Dika set reminder privat",
      "title_en": "Dika set a private reminder",
      "summary": "[DETAIL REDACTED — private service requests are not exposed in live payload]",
      "summary_en": "[DETAIL REDACTED — private service requests are not exposed in live payload]",
      "nitaLineSuggestion": null,
      "nitaLineSuggestion_en": null,
      "safeToMentionLive": false,
      "allowOverlay": false,
      "allowMemoryWrite": true,
      "requiresConsent": true,
      "source": "service",
      "createdAt": "2026-07-03T10:40:00+07:00",
      "metadata": {
        "serviceId": "timeCapsule",
        "redacted": true
      }
    },
    {
      "id": "evt-system-dummy-note",
      "type": "system.dummy_schema",
      "category": "system",
      "visibility": "sensitive",
      "viewerId": null,
      "viewerDisplayName": "system",
      "title": "Dummy payload preview",
      "title_en": "Dummy payload preview",
      "summary": "Payload ini statis. Tidak ada real account, real payment, atau real memory write. Semua viewerId dan nama adalah placeholder.",
      "summary_en": "This payload is static. No real account, real payment, or real memory write. All viewerId and names are placeholders.",
      "nitaLineSuggestion": null,
      "nitaLineSuggestion_en": null,
      "safeToMentionLive": false,
      "allowOverlay": false,
      "allowMemoryWrite": false,
      "requiresConsent": false,
      "source": "system",
      "createdAt": "2026-07-03T10:00:00+07:00",
      "metadata": {
        "note": "This entire JSON is a Phase 2C schema preview, not a live feed."
      }
    }
  ],
  "suggestedActions": [
    {
      "id": "act-001",
      "actionType": "suggest_line",
      "visibility": "stream_safe",
      "allowed": true,
      "reason": "evt-membership-vip-join has safeToMentionLive=true and visibility=stream_safe",
      "createdAt": "2026-07-03T10:00:00+07:00",
      "eventId": "evt-membership-vip-join"
    },
    {
      "id": "act-002",
      "actionType": "show_overlay",
      "visibility": "public",
      "allowed": true,
      "reason": "evt-card-pull-sss has allowOverlay=true and visibility=public",
      "createdAt": "2026-07-03T10:25:00+07:00",
      "eventId": "evt-card-pull-sss"
    },
    {
      "id": "act-003",
      "actionType": "queue_private_memory",
      "visibility": "sensitive",
      "allowed": true,
      "reason": "evt-deeptalk-private-vent is sensitive; writes only to protected memory lane and requires explicit consent",
      "createdAt": "2026-07-03T10:35:00+07:00",
      "eventId": "evt-deeptalk-private-vent"
    }
  ],
  "deniedActions": [
    {
      "id": "act-deny-001",
      "actionType": "block_live_mention",
      "visibility": "sensitive",
      "allowed": false,
      "reason": "DeepTalk content is sensitive; live mention blocked by sanitize pipeline.",
      "createdAt": "2026-07-03T10:35:00+07:00",
      "eventId": "evt-deeptalk-private-vent"
    },
    {
      "id": "act-deny-002",
      "actionType": "block_live_mention",
      "visibility": "private",
      "allowed": false,
      "reason": "Private service detail; live mention blocked by sanitize pipeline.",
      "createdAt": "2026-07-03T10:40:00+07:00",
      "eventId": "evt-private-service-detail"
    }
  ],
  "notes": [
    "Payload ini adalah schema preview statis untuk Phase 2C. Tidak ada integrasi OLV, tidak ada push ke Nita, tidak ada memory write.",
    "This payload is a static schema preview for Phase 2C. No OLV integration, no push to Nita, no memory write."
  ]
}

Prinsip Privasi

  1. Public boleh dikutip live.
  2. Stream-safe boleh disebut dengan nada playful, tanpa overshare.
  3. Private tidak pernah live.
  4. Sensitive tidak pernah live, tidak pernah overlay, butuh consent.
  5. Payment dan data personal tidak pernah live.
  6. DeepTalk SELALU sensitive — private memory lane only.

Catatan Integrasi Mendatang

Referensi Teknis Mendalam

Dokumentasi lengkap tentang future bridge boundary protocol ada di repository: docs/nita-context-bridge.md. Itu adalah source of truth untuk schema, visibility rules, audit log requirements, dan migration checklist. Halaman ini hanya ringkasan UI-nya.

Path di repository docs/nita-context-bridge.md

Catatan: path ini ada di source repository, bukan URL publik. Untuk akses, lihat repository GitHub.

Kenapa Nita boleh / tidak boleh ngomong?

Trace 5 langkah untuk lihat kenapa sebuah event diizinkan atau di-block. Pilih event di bawah.

Pilih event
  1. Visibility terdeteksi:
  2. safeToMentionLive check:
  3. Overlay allowed check:
  4. Memory lane yang dipilih:
  5. Keputusan final:

Raw Payload Preview Aman

Lihat metadata event tanpa body yang sensitif. DeepTalk, payment, dan private service tetap di-redacted.

Simulasi Live Mode Aman

Pilih event untuk lihat bagaimana bridge memproses menjadi line live. Tidak ada real OLV/websocket/backend. Ini hanya UI simulation.

Pilih event
Buka Koleksi Kartu → Card Rollate Buka Koleksi Kartu →