Class: Ucode::Models::BuildReport

Inherits:
Lutaml::Model::Serializable
  • Object
show all
Defined in:
lib/ucode/models/build_report.rb

Overview

Build report for one canonical Unicode dataset run. The deliverable spec'd in TODO 21: emitted at the end of a Mode 1 build as output/build-report.json, summarizing what got built, how (per-tier), per-block, and any failures.

The model is passive — accumulation logic lives in Repo::BuildReportAccumulator; this class only describes the wire shape and handles (de)serialization via lutaml-model.

Wire format (see TODO 21):

{
"unicode_version": "17.0.0",
"ucode_version": "0.2.0",
"generated_at": "2026-07-01T12:00:00Z",
"totals": { "assigned": 150012, "built": 150012,
            "skipped": 0, "failed": 0 },
"by_tier": { "tier-1": 150012, "pillar-1": 3000, ... },
"by_block": [
  { "name": "Basic Latin", "assigned": 128, "built": 128,
    "tier_breakdown": { "tier-1": 128 } },
  ...
],
"failures": []
}

by_tier counts overlap across tiers (a codepoint attempted via Tier 1 but falling through to Pillar 1 is counted in both); built per-codepoint is the tier that actually produced its glyph.

Defined Under Namespace

Classes: BlockSummary, Failure, Totals