{
  "ops_shell": {
    "operator": "Operator",
    "logout": "Sign out",
    "logout_failed": "Sign out failed. Try again",
    "colouring": "Map colouring",
    "cells_show": "Show cells",
    "cells_hide": "Hide cells",
    "ci": "CI total",
    "coverage": "Coverage",
    "state": "State"
  },
  "ops_common": {
    "not_reported": "not reported",
    "separator": ", ",
    "path_separator": " / ",
    "empty": "No records returned.",
    "failed": "Read failed. No state inferred.",
    "loading": "Reading recorded state..."
  },
  "ops_model": {
    "title": "Model",
    "sensors": "Satellites",
    "factors": "Factors",
    "count": "Factor model count",
    "cfms": "Calibration factor models",
    "version": "Version",
    "bands": "Band coverage",
    "parameters": "Parameters",
    "uncertainty": "Reported uncertainty",
    "covariance": "Covariance",
    "compositions": "CRM compositions",
    "sensor": "Sensor",
    "message": "Message",
    "tile_id": "Tile",
    "source_swaths": "Source swaths",
    "change": "What changed",
    "scans": "Scans",
    "independence": "Independence",
    "readiness": "Evidence readiness",
    "baseline": "Baseline",
    "actor": "Decision by",
    "reason": "Reason",
    "awaiting": "awaiting decision",
    "approved": "approved",
    "dismissed": "dismissed",
    "applied": "applied",
    "apply_declined": "apply declined",
    "status": "Status",
    "footprint": "Footprint",
    "created_at": "Created at",
    "max_delta": "Max delta",
    "prior_ci": "Prior CI",
    "proposed_ci": "Proposed CI",
    "new_factor": "new factor, no prior",
    "believability": "Believability",
    "scene_expectation": "Scene expectation",
    "no_scene_expectation": "No scene expectation available.",
    "blast_radius": "Blast radius",
    "entangled_pairs": "Entangled factor pairs",
    "rms": "RMS",
    "why_uncertain": "Why uncertain",
    "criticism": "Model criticism",
    "nis_gate": "NIS gate",
    "ok": "OK",
    "flagged": "Flagged",
    "suspect_observations": "Suspect observations",
    "ready": "Ready",
    "under_evidenced": "Under-evidenced",
    "unknown": "Unknown",
    "observations": "Observations",
    "decided_at": "Decided at",
    "executed_by": "Executed by",
    "decision_record": "Decision record",
    "decision_history": "Decision history",
    "proposal_id": "Proposal ID",
    "event": "Event",
    "time": "Recorded at",
    "hand_maintained": "Hand-maintained validation summary. Transcribed measurements, not a generated validation register or a claim of validated uncertainty bounds.",
    "sources": "Source artifacts",
    "window": "Window equivalence",
    "aeronet": "AERONET comparison",
    "changes": "Model-change record",
    "events": "Engine events",
    "validation": "Validation provenance",
    "tile": "Tile diagnostics",
    "evidence": "Recorded evidence",
    "tile_state": "State",
    "product": "Product",
    "h3_index": "Cell index",
    "centroid": "Centre",
    "observed": "Observed",
    "coverage": "Coverage",
    "atmosphere": "Atmosphere",
    "atmosphere_evidence": "Atmospheric evidence",
    "spatial_state": "Spatial state",
    "spatial_contributions": "Spatial uncertainty contributions",
    "band_ci": "Uncertainty by band",
    "active_factors": "Active factors",
    "versions": "Tile versions",
    "trace": "Swath trace",
    "packet": "Audit packet"
  },
  "ops_satellites": {
    "l8_oli": "Landsat 8 OLI",
    "l9_oli2": "Landsat 9 OLI-2",
    "s2a": "Sentinel-2A",
    "s2b": "Sentinel-2B",
    "s2c": "Sentinel-2C"
  },
  "ops_factors": {
    "atmospheric_correction": "atmosphere",
    "dark_current": "detector dark current",
    "radiometric_gain": "radiometric gain",
    "scan_angle_response": "scan-angle response",
    "source_bias_aeronet": "bias against AERONET ground truth",
    "srf": "spectral response",
    "wavelength_cal": "wavelength calibration",
    "inter_instrument_reconciliation": "differences between instruments"
  },
  "ops_basis": {
    "boa_reflectance_relative": "relative bottom-of-atmosphere reflectance",
    "per_band_absolute_radiometric_relative": "relative radiometric gain per band",
    "per_band_offset_reflectance": "reflectance offset per band",
    "polynomial_coefficients": "polynomial coefficients",
    "source_bias_residual": "residual bias against ground truth",
    "per_band_center_wavelength_nm": "band centre wavelength",
    "per_band_wavelength_shift_nm": "wavelength shift per band"
  },
  "ops_catalogue": {
    "corrects": "RefCal corrects {satellite} for: {factors}.",
    "no_corrections": "No correction models were returned for this satellite.",
    "latest_recorded": "Latest recorded factor versions. Activation is not reported here.",
    "earlier": "Earlier versions",
    "technical": "Technical record",
    "sequence": "Recorded version {sequence}",
    "range": "{low} to {high}",
    "sigma_relative": "1-sigma: {value}% ({basis}).",
    "sigma_units": "1-sigma: {value} {units} ({basis}).",
    "sigma_basis": "1-sigma: {value} ({basis}).",
    "recorded_covariance": "Recorded covariance: {value} ({basis}; distribution: {distribution}).",
    "nanometres": "nanometres",
    "nanometre": "nanometre",
    "basis_missing": "basis not recorded",
    "uncertainty_missing": "Uncertainty not recorded.",
    "prior": "Prior: {source}.",
    "prior_esa": "ESA's published instrument specifications",
    "prior_usgs": "USGS published spectral response measurements",
    "prior_threshold": "RefCal's operational reflectance limit from validation thresholds",
    "prior_aeronet": "initial unbiased prior for AERONET bias",
    "prior_unbiased": "initial unbiased prior, awaiting observations",
    "prior_siac": "SIAC atmospheric correction records",
    "prior_rollback": "recorded rollback; prior source in the technical record",
    "prior_placeholder": "placeholder pending measurements",
    "prior_technical": "recorded source in the technical record",
    "prior_missing": "source not recorded"
  },
  "ops_engine": {
    "title": "Engine",
    "run": "Run",
    "started": "Started",
    "duration": "Duration",
    "cost": "Attributed cost in EUR",
    "health": "Reported health",
    "progress": "Progress",
    "last_seen": "Last observed",
    "error": "Error",
    "units_progress": "{completed} of {total} units",
    "count_status": "{count} {status}",
    "reachable": "reachable",
    "unreachable": "unreachable",
    "database": "Database",
    "capture": "Latest usage capture",
    "campaigns": "Campaign progress",
    "recent": "Recent SIAC and tiling runs",
    "ledger": "Recent operator-ledger runs and cost",
    "current": "Current operator-ledger runs",
    "attention": "Needs attention",
    "no_attention": "Nothing needs attention",
    "attention_incomplete": "Attention checks are incomplete until all recorded state is read.",
    "attention_scope": "Attention covers the records returned by the engine.",
    "retry_unit": "Ask an agent to diagnose and retry this unit.",
    "inspect_deferred": "Ask an agent to check this unit's deferral reason and retry when its inputs are available.",
    "inspect_campaign": "Ask an agent to inspect this campaign and identify the affected units.",
    "inspect_run": "Ask an agent to inspect this run's observations and logs before deciding whether to retry or cancel it.",
    "reason_missing": "No failure reason was returned.",
    "unit_gap": "{count} {status} units: names or reasons were not returned by the engine read.",
    "stale_observation": "No recorded observation in over 30 min",
    "awaiting_models": "{count} model changes awaiting a decision",
    "review_models": "Ask an agent to assess these model changes and record your decision.",
    "open_model": "Open model-change cards",
    "reporting_pending": "Health, progress and cost appear once run reporting is live",
    "older_cancelled": "Older and cancelled runs",
    "seconds": "{seconds} s",
    "minutes": "{minutes} min",
    "hours": "{hours} h",
    "hours_minutes": "{hours} h {minutes} min"
  },
  "ops_status": {
    "healthy": "healthy",
    "stalled": "stalled",
    "unhealthy": "unhealthy",
    "failed": "failed",
    "impossible": "impossible",
    "manual_attention": "needs attention",
    "done": "done",
    "running": "running",
    "queued": "queued",
    "cancelled": "cancelled",
    "planned": "planned",
    "blocked": "blocked"
  },
  "ops_share": {
    "title": "Demo access links",
    "list": "Issued links",
    "mode": "Mode",
    "uses": "Use count",
    "last_use": "Last use",
    "expires": "Expires",
    "revoked": "Revoked",
    "revoke": "Revoke",
    "label": "Label",
    "days": "Valid for days",
    "create": "Create read-only share link",
    "once": "Copy this link now. It is shown only once.",
    "url": "New share link",
    "action": "Demo-link action",
    "share": "Share link",
    "register": "Registration",
    "share_help": "No account, email or PIN. Anyone with the link can enter the read-only demo until it expires. Revoking it ends live sessions immediately.",
    "register_help": "The recipient supplies their email and receives a six-digit PIN to create their own read-only account. Revoking blocks new registrations; accounts already created keep working.",
    "create_registration": "Create registration link",
    "yes": "Yes",
    "no": "No"
  },
  "ops_signin": {
    "title": "RefCal operator sign-in",
    "register_title": "Create your account",
    "register_send": "Create account & send code",
    "email": "Email address",
    "sent": "A six-digit code was sent to",
    "code": "Login code",
    "send": "Send login code",
    "verify": "Sign in",
    "back": "Use a different email",
    "invalid_code": "Enter the six-digit code.",
    "rate_limit": "Too many attempts. Try again in 15 minutes.",
    "wrong_code": "Incorrect code. Try again.",
    "expired": "Code has expired. Request a new one.",
    "exhausted": "Too many wrong attempts. Request a new code.",
    "missing": "Code not found. Request a new one.",
    "retry": "Please try again.",
    "delivery_failed": "Code delivery is unavailable. Try again later.",
    "failed": "Sign-in failed. Try again.",
    "network": "Network error. Check your connection.",
    "unavailable": "Sign-in unavailable. Reload to try again."
  }
}
