Release 1.0: platform and standard live; no real packet audits yet August 6, 2026
Schema 1.0 · JSON

A receipt humans can read and machines can verify

The standard keeps observation, attribution and conclusion separate. An institution can produce it before release; a laboratory, newsroom or NGO can verify it after release.

01

AppRelease

Package, version, hash, source and date.

02

Journey

Public-service goal, steps and stopping condition.

03

ChoiceState

Before, refused, accepted or withdrawn.

04

Event

Moment, documentary claims and technical observation.

05

Destination

Domain, role, relationship and attribution provenance.

06

Claim

Proposition, class, maximum wording and status.

07

Response

Actor reply attached to the exact claim.

08

Repair

Minimum change, verification test and history.

JSON Schema 2020-12

Download the schema

Schemas allow validation without forcing every adopter to use this website or visual design.

Lifecycle

A record is never silently overwritten

A new release, reply or retest becomes a new event. The original result remains citable.

proposedacknowledgedpromisedupdatedretest dueverifieddisputed
{
  "id": "calibrare-sesizari",
  "audit_level": "CAL",
  "app": {
    "name": "Oraș Test — Sesizări",
    "package_id": "org.example.orastest",
    "version": "4.8.1",
    "apk_sha256": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
  },
  "journey": {
    "ro": "Trimiterea unei sesizări privind iluminatul public",
    "en": "Submitting a street-lighting report"
  },
  "states": [
    {
      "id": "before_choice",
      "events": 2
    },
    {
      "id": "refused",
      "events": 2
    },
    {
      "id": "accepted",
      "events": 1
    },
    {
      "id": "withdrawn",
      "events": 1
    }
  ],
  "claims": [
    {
      "id": "CAL-001",
      "classification": "observed_not_clearly_described",
      "statement": {
        "ro": "Serviciul de analiză a fost contactat înaintea afișării alegerii opționale.",
        "en": "The analytics service was contacted before the optional choice was shown."
      },
      "maximum_wording": {
        "ro": "Putem spune când a început conexiunea; nu putem spune că profilarea a avut loc.",
        "en": "We can state when the connection began; we cannot state that profiling occurred."
      },
      "status": "calibration"
    }
  ],
  "repairs": [
    {
      "id": "REP-CAL-001",
      "actor": "Furnizor fictiv",
      "minimum_change": {
        "ro": "Inițializează SDK-ul de analiză numai după acceptarea explicită sau scoate-l din traseul de bază.",
        "en": "Initialize the analytics SDK only after explicit acceptance, or remove it from the core journey."
      },
      "verification": {
        "ro": "Repetă traseul pe instalare curată și confirmă absența conexiunii înainte de alegere.",
        "en": "Repeat the journey on a clean install and confirm no pre-choice connection."
      },
      "status": "proposed"
    }
  ]
}