{
  "schema_version": 1,
  "release": "orao-2026-v0.20.0",
  "prepared_on": "2026-10-22",
  "timezone": "Europe/Zagreb",
  "status": "Prepared incremental ZIP for upload; no remote deployment performed",
  "archive": "evil-appliances-orao-2026-v0.20.0-update.zip",
  "previous_release": "orao-2026-v0.16.0",
  "requires_previous_release": "orao-2026-v0.16.0",
  "scope": [
    "orao/",
    "reference/orao/"
  ],
  "whole_site_release": false,
  "emulator_version": "0.20.0",
  "wasm_version": "0.13.0",
  "packaging": {
    "modified_files": 12,
    "added_files": 511,
    "zip_entries": 523,
    "unchanged_excluded": 2211,
    "deletions": 0,
    "complete_baseline_files": 2734,
    "complete_future_baseline": "orao-tests/orao-2026-release-baseline-v0.20.0.json",
    "whole_site_baseline_replaced": false
  },
  "homepage_title": "JS v0.20 / Wasm v0.13",
  "homepage_summary": "Brže izvršavanje i odziv miša, zbijeniji izbornici te lokalni sat i datum.",
  "changes": [
    "Previously unpublished JS v0.17-v0.20 and Wasm v0.10-v0.13, with newest defaults and preserved older archives",
    "Private-memory and C3 video-port shortcuts, fewer JS/Wasm boundary crossings and inactive-state synchronization",
    "Scheduler/process, completed-frame, equal-pixel, muted-audio, disk-deadline and JS binary arithmetic optimizations",
    "CPU software cursor streams changed pixel runs and web input receives bounded cooperative work before requestAnimationFrame",
    "Internal bottom status strip removed; top menu width reduced from 488 to 376 pixels with discreet dividers",
    "Top-right local date and time, supplied by an experimental read-only RTC and formatted/drawn by emulated CPUs",
    "Matching registry, portal, manuals, reference companions and publication links"
  ],
  "preserved": [
    "All preceding files except twelve surrounding portal/registry/documentation files",
    "Original Orao32 ROM and behavior, all earlier version archives, transcripts, tapes and source downloads",
    "Previous prepared ZIPs and complete focused baselines"
  ],
  "checks": {
    "JSVersions": 28,
    "WasmVersions": 13,
    "latestNativeCPUCases": 8202,
    "latestNMOSOpcodeTraceCases": 6144,
    "latestNMOSArithmeticCases": 524288,
    "JSArithmeticCases": 546288,
    "diskDifferentialCases": 8290,
    "schedulerChunks": 4800,
    "latestBASICPresentedFramesPerEngine": 52,
    "latestBASICTornFramesPerEngine": 0,
    "RTCAndMenuIndependentFrameOracles": true,
    "actualEdgeControlsAndClock": true,
    "perVersionArchiveManifestsVerified": true
  },
  "limits": [
    "Original BASIC source line spacing remains preserved; further investigation is deferred at user request",
    "Zero torn frames does not prove uniform source line spacing",
    "GUI firmware intentionally changed; original Orao32 ROM and CPU cycle semantics are preserved",
    "RTC C065E0-E9 is an experimental reconstruction choice, not recovered historical hardware",
    "Web in-canvas original-ROM 1 MHz label is nominal text; effective rate is measured separately",
    "Cursor benchmarks compare engine time with each predecessor, not FPS or complete physical latency; no fresh v0.20 speed claim",
    "Rust desktop remains local and excluded; rejected Rust optimization experiments are not a shipped speedup",
    "Wasm remains experimental; local file cassette-card support remains deferred",
    "Incremental upload requires the complete v0.16.0 release; this is not a whole-site replacement"
  ]
}
