deepseek-v4-flash-0731 @ medium · api

apimedium
config
deepseek-v4-flash-0731-eff-medium--api--official--dev
batch
2026-07-19--unified
transport
deepseek-official-api
protocol
api · metered
served model
deepseek-v4-flash
captured
Jul 18, 2026, 11:54 AM · N=4
variant
live
slot 0 · P-q · sandboxed iframe
deepseek-v4-flash-0731 @medium · api P-q slot 0 screenshot

The screenshot is the exact frozen pixels the similarity channels measured. Run live re-executes the raw output in a sandboxed iframe; its rendering depends on your browser and fonts and is not guaranteed to match the measured pixels.

similarity neighbors

within session 2026-07-19--unified

similarity measures convergence within this session — not quality.

Fidelity — does the card show the right data?

  • namematch
  • conditionmatch
  • datematch
  • max tempmatchshown: 25
  • min tempmatchshown: 16
  • hourlymatchcoverage 24/24 · 24 match · 0 mismatch · 0 not shown
  • request sidematch0 violation(s)

extractor fidelity-extractor-v1+Berlin-2026-07-15

Source — raw model output, one byte unchanged

download card.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Weather Card</title>
<link rel="icon" href="data:,">
<style>
  * {
    box-sizing: border-box;
  }

  html, body {
    height: 100%;
  }

  body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    color: #e2e8f0;
    background:
      radial-gradient(1200px 700px at 15% 0%, rgba(56, 189, 248, 0.18), transparent 60%),
      radial-gradient(1000px 600px at 85% 100%, rgba(129, 140, 248, 0.16), transparent 60%),
      #07111f;
  }

  #app {
    width: 100%;
    display: flex;
    justify-content: center;
  }

  .card {
    position: relative;
    width: 1060px;
    max-width: 100%;
    padding: 40px 44px 36px;
    overflow: hidden;
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.10), rgba(255, 255, 255, 0.045));
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 32px;
    box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
  }

  .card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 48px;
    right: 48px;
    height: 3px;
    border-radius: 0 0 999px 999px;
    background: linear-gradient(90deg, #38bdf8, #818cf8 50%, #fbbf24);
    opacity: 0.9;
  }

  .card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
  }

  .location-block {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
  }

  .location-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  }

  .location-name {
    margin: 0;
    font-size: 28px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.02em;
    overflow-wrap: anywhere;
  }

  .date-line {
    margin-top: 6px;
    font-size: 14px;
    color: #94a3b8;
  }

  .utc-badge {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #94a3b8;
    padding: 7px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.10);
  }

  .summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 28px 0 32px;
    padding: 28px 32px;
    border-radius: 24px;
    background: linear-gradient(120deg, rgba(56, 189, 248, 0.13), rgba(129, 140, 248, 0.09));
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
  }

  .condition {
    display: flex;
    align-items: center;
    gap: 20px;
    min-width: 0;
  }

  .condition-icon {
    font-size: 54px;
    line-height: 1;
    filter: drop-shadow(0 10px 16px rgba(0, 0, 0, 0.3));
  }

  .condition-label {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.01em;
  }

  .condition-meta {
    margin-top: 4px;
    font-size: 13px;
    color: #94a3b8;
  }

  .temp-summary {
    display: flex;
    gap: 14px;
  }

  .temp-pill {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 102px;
    padding: 12px 16px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.09);
  }

  .temp-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #94a3b8;
  }

  .temp-main {
    font-size: 34px;
    font-weight: 800;
    line-height: 1.1;
    margin-top: 2px;
  }

  .temp-max-value {
    color: #fbbf24;
  }

  .temp-min-value {
    color: #7dd3fc;
  }

  .hourly-section {
    margin-top: 6px;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
  }

  .hourly-section::-webkit-scrollbar {
    height: 8px;
  }

  .hourly-section::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.15);
    border-radius: 999px;
  }

  .section-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 14px;
  }

  .section-head h2 {
    margin: 0;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #cbd5e1;
  }

  .section-head .unit {
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
  }

  .hourly-grid {
    display: grid;
    grid-template-columns: repeat(24, minmax(34px, 1fr));
    gap: 5px;
  }

  .hour {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
    padding: 10px 2px 9px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.055);
    transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
  }

  .hour:hover {
    border-color: rgba(56, 189, 248, 0.4);
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.06);
  }

  .hour-time {
    font-size: 10px;
    font-weight: 700;
    color: #94a3b8;
    letter-spacing: 0.03em;
    margin-bottom: 6px;
    text-transform: uppercase;
  }

  .bar-track {
    width: 100%;
    height: 50px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
  }

  .bar {
    width: 9px;
    min-height: 3px;
    border-radius: 6px 6px 2px 2px;
    background: linear-gradient(to top, rgba(56, 189, 248, 0.9), rgba(129, 140, 248, 0.95));
  }

  .hour-temp {
    margin-top: 6px;
    font-size: 13px;
    font-weight: 800;
    color: #e2e8f0;
    font-variant-numeric: tabular-nums;
  }

  .loading-state,
  .error-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 300px;
    gap: 16px;
  }

  .spinner {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 3px solid rgba(255, 255, 255, 0.14);
    border-top-color: #38bdf8;
    animation: spin 0.9s linear infinite;
  }

  @keyframes spin {
    to {
      transform: rotate(360deg);
    }
  }

  .loading-title,
  .error-title {
    margin: 0;
    font-size: 22px;
    font-weight: 800;
  }

  .error-message {
    margin: 0;
    color: #94a3b8;
    max-width: 420px;
    line-height: 1.55;
  }

  .error-icon {
    font-size: 52px;
  }

  .retry-btn {
    margin-top: 8px;
    padding: 11px 22px;
    border: none;
    border-radius: 14px;
    background: linear-gradient(135deg, #0ea5e9, #6366f1);
    color: white;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    box-shadow: 0 12px 24px -8px rgba(99, 102, 241, 0.5);
    transition: filter 0.2s, transform 0.2s;
  }

  .retry-btn:hover {
    filter: brightness(1.1);
    transform: translateY(-2px);
  }
</style>
</head>
<body>
<div id="app">
  <div class="card loading-state">
    <div class="spinner"></div>
    <p class="loading-title">Loading weather data…</p>
  </div>
</div>
<script>
(function () {
  var app = document.getElementById('app');
  var query = new URLSearchParams(window.location.search);

  function readNumber(name, fallback) {
    var raw = query.get(name);
    if (raw === null) return fallback;
    var trimmed = raw.trim();
    if (trimmed === '') return fallback;
    var value = Number(trimmed);
    return Number.isFinite(value) ? value : fallback;
  }

  function isValidDate(value) {
    var match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value);
    if (!match) return false;
    var year = Number(match[1]);
    var month = Number(match[2]);
    var day = Number(match[3]);
    var date = new Date(Date.UTC(year, month - 1, day));
    return date.getUTCFullYear() === year &&
           date.getUTCMonth() === month - 1 &&
           date.getUTCDate() === day;
  }

  function asNumber(value) {
    if (value === null || value === undefined || value === '') return null;
    var num = Number(value);
    return Number.isFinite(num) ? num : null;
  }

  function formatTemp(value, withUnit) {
    if (value === null) return '—';
    var rounded = Math.round(value);
    var text = String(rounded === 0 ? 0 : rounded);
    return withUnit ? text + '°C' : text + '°';
  }

  function escapeHtml(value) {
    return String(value).replace(/[&<>"']/g, function (char) {
      return {
        '&': '&amp;',
        '<': '&lt;',
        '>': '&gt;',
        '"': '&quot;',
        "'": '&#39;'
      }[char];
    });
  }

  var WEATHER_CODES = {
    0:  { label: 'Clear sky', icon: '☀️' },
    1:  { label: 'Mainly clear', icon: '🌤️' },
    2:  { label: 'Partly cloudy', icon: '⛅' },
    3:  { label: 'Overcast', icon: '☁️' },
    45: { label: 'Fog', icon: '🌫️' },
    48: { label: 'Depositing rime fog', icon: '🌫️' },
    51: { label: 'Light drizzle', icon: '🌦️' },
    53: { label: 'Drizzle', icon: '🌦️' },
    55: { label: 'Dense drizzle', icon: '🌦️' },
    56: { label: 'Freezing drizzle', icon: '🌧️' },
    57: { label: 'Dense freezing drizzle', icon: '🌧️' },
    61: { label: 'Light rain', icon: '🌧️' },
    63: { label: 'Rain', icon: '🌧️' },
    65: { label: 'Heavy rain', icon: '🌧️' },
    66: { label: 'Freezing rain', icon: '🌧️' },
    67: { label: 'Dense freezing rain', icon: '🌧️' },
    71: { label: 'Light snow', icon: '🌨️' },
    73: { label: 'Snow', icon: '🌨️' },
    75: { label: 'Heavy snow', icon: '❄️' },
    77: { label: 'Snow grains', icon: '❄️' },
    80: { label: 'Light rain showers', icon: '🌦️' },
    81: { label: 'Rain showers', icon: '🌧️' },
    82: { label: 'Violent rain showers', icon: '⛈️' },
    85: { label: 'Snow showers', icon: '🌨️' },
    86: { label: 'Heavy snow showers', icon: '❄️' },
    95: { label: 'Thunderstorm', icon: '⛈️' },
    96: { label: 'Thunderstorm with hail', icon: '⛈️' },
    99: { label: 'Thunderstorm with heavy hail', icon: '⛈️' }
  };

  function weatherInfo(code) {
    return WEATHER_CODES[code] || { label: 'Unknown', icon: '🌡️' };
  }

  var lat = readNumber('lat', 52.52);
  var lon = readNumber('lon', 13.405);
  var locationName = (query.get('name') || '').trim() || 'Berlin';
  var rawDate = (query.get('date') || '').trim();
  var todayUTC = new Date().toISOString().slice(0, 10);
  var dateStr = isValidDate(rawDate) ? rawDate : todayUTC;
  var endpoint = dateStr < todayUTC ? '/api/om/archive' : '/api/om/forecast';

  var apiParams = new URLSearchParams({
    latitude: String(lat),
    longitude: String(lon),
    daily: 'temperature_2m_max,temperature_2m_min,weather_code',
    hourly: 'temperature_2m',
    timezone: 'UTC',
    temperature_unit: 'celsius',
    start_date: dateStr,
    end_date: dateStr
  });

  var apiURL = endpoint + '?' + apiParams.toString();

  function buildHourly(hourlyData) {
    if (!hourlyData) return [];
    var times = hourlyData.time;
    var temps = hourlyData.temperature_2m;
    if (!Array.isArray(times) || !Array.isArray(temps)) return [];

    var result = [];
    for (var i = 0; i < times.length; i++) {
      var time = String(times[i]);
      if (time.slice(0, 10) === dateStr) {
        result.push({
          time: time.slice(11, 16) || '—',
          temp: asNumber(temps[i])
        });
      }
    }
    return result;
  }

  function renderApp(data) {
    var daily = data.daily;
    if (!daily || !Array.isArray(daily.time) || daily.time.length === 0) {
      throw new Error('Daily data missing');
    }

    var dayIndex = daily.time.findIndex(function (entry) {
      return String(entry).slice(0, 10) === dateStr;
    });
    if (dayIndex < 0) throw new Error('Date not found');

    var maxArray = daily.temperature_2m_max;
    var minArray = daily.temperature_2m_min;
    var codeArray = daily.weather_code;
    if (!Array.isArray(maxArray) || !Array.isArray(minArray)) {
      throw new Error('Daily temperature data missing');
    }

    var max = asNumber(maxArray[dayIndex]);
    var min = asNumber(minArray[dayIndex]);
    if (max === null || min === null) {
      throw new Error('Daily temperature values missing');
    }

    var code = codeArray ? codeArray[dayIndex] : null;
    var weather = weatherInfo(code);
    var hourly = buildHourly(data.hourly);

    if (hourly.length === 0 || !hourly.some(function (h) { return h.temp !== null; })) {
      throw new Error('Hourly temperature data missing');
    }

    var numericTemps = hourly.filter(function (h) { return h.temp !== null; }).map(function (h) { return h.temp; });
    var minAll = numericTemps.length ? Math.min.apply(null, numericTemps) : 0;
    var maxAll = numericTemps.length ? Math.max.apply(null, numericTemps) : 1;
    var hasSpread = maxAll !== minAll;
    var spread = (maxAll - minAll) || 1;

    var hourCards = hourly.map(function (h) {
      var tempText = formatTemp(h.temp, false);
      var barHeight = 0;
      if (h.temp !== null) {
        barHeight = hasSpread
          ? Math.max(8, Math.round(((h.temp - minAll) / spread) * 100))
          : 70;
      }
      return '<div class="hour" title="' + escapeHtml(h.time) + ' UTC, ' + escapeHtml(formatTemp(h.temp, true)) + '">' +
        '<span class="hour-time">' + escapeHtml(h.time) + '</span>' +
        '<div class="bar-track"><span class="bar" style="height:' + barHeight + '%"></span></div>' +
        '<span class="hour-temp">' + tempText + '</span>' +
        '</div>';
    }).join('');

    var dateObj = new Date(dateStr + 'T00:00:00Z');
    var formattedDate = new Intl.DateTimeFormat('en-GB', {
      weekday: 'long',
      day: 'numeric',
      month: 'long',
      year: 'numeric',
      timeZone: 'UTC'
    }).format(dateObj);

    var codeText = (code === null || code === undefined) ? '—' : code;

    app.innerHTML =
      '<div class="card">' +
        '<div class="card-header">' +
          '<div class="location-block">' +
            '<span class="location-icon" aria-hidden="true">📍</span>' +
            '<div>' +
              '<h1 class="location-name">' + escapeHtml(locationName) + '</h1>' +
              '<div class="date-line">' + escapeHtml(formattedDate) + '</div>' +
            '</div>' +
          '</div>' +
          '<div class="utc-badge">UTC</div>' +
        '</div>' +
        '<div class="summary">' +
          '<div class="condition">' +
            '<div class="condition-icon" aria-hidden="true">' + weather.icon + '</div>' +
            '<div>' +
              '<div class="condition-label">' + escapeHtml(weather.label) + '</div>' +
              '<div class="condition-meta">Weather code ' + codeText + '</div>' +
            '</div>' +
          '</div>' +
          '<div class="temp-summary">' +
            '<div class="temp-pill">' +
              '<span class="temp-label">Max</span>' +
              '<span class="temp-main temp-max-value">' + formatTemp(max, true) + '</span>' +
            '</div>' +
            '<div class="temp-pill">' +
              '<span class="temp-label">Min</span>' +
              '<span class="temp-main temp-min-value">' + formatTemp(min, true) + '</span>' +
            '</div>' +
          '</div>' +
        '</div>' +
        '<section class="hourly-section">' +
          '<div class="section-head">' +
            '<h2>Hourly temperatures</h2>' +
            '<span class="unit">All times UTC · °C</span>' +
          '</div>' +
          '<div class="hourly-grid">' + hourCards + '</div>' +
        '</section>' +
      '</div>';
  }

  function renderError() {
    app.innerHTML =
      '<div class="card error-state">' +
        '<div class="error-icon" aria-hidden="true">⚠️</div>' +
        '<h1 class="error-title">Weather data could not be loaded</h1>' +
        '<p class="error-message">We could not retrieve weather data for this location and date. Please check the coordinates and date, then try again.</p>' +
        '<button class="retry-btn" type="button" id="retryBtn">Try again</button>' +
      '</div>';

    var retryBtn = document.getElementById('retryBtn');
    if (retryBtn) {
      retryBtn.addEventListener('click', function () {
        window.location.reload();
      });
    }
  }

  async function init() {
    try {
      var response = await fetch(apiURL);
      if (!response.ok) throw new Error('HTTP ' + response.status);
      var data = await response.json();
      renderApp(data);
    } catch (error) {
      console.error(error);
      renderError();
    }
  }

  init();
})();
</script>
</body>
</html>

L1 — cheap deterministic descriptors

bytes total16,934html / css / js413 / 7,053 / 9,468
dom nodes13dom depth5
css rules45js presentyes
brightness34.1contrast19.8
colorfulness20.0whitespace77.3%

This slot's telemetry

prompt tokens400completion tokens46,792
total tokens47,192wall390.2 s
costrequest id
config.json602 B
{
  "N": 4,
  "auth": {
    "credential_ref": "WCB_DEEPSEEK_KEY",
    "method": "api-key"
  },
  "billing": "metered",
  "config_id": "deepseek-v4-flash-0731-eff-medium--api--official--dev",
  "effort": "medium",
  "family": "deepseek",
  "m": {
    "min": 3,
    "q": 4
  },
  "model_id": "deepseek-v4-flash-0731",
  "protocol": "api",
  "served_model": "deepseek-v4-flash",
  "telemetry": {
    "completion_tokens": 318563,
    "cost_usd": null,
    "prompt_tokens": 2776,
    "total_tokens": 321339,
    "wall_ms": 2737823
  },
  "transport": "deepseek-official-api",
  "vendor_sanction_ref": null
}
send-log4.7 KB
{
  "N": 4,
  "batch_id": "2026-07-31--official-deepseek-flash-0731",
  "config_id": "deepseek-v4-flash-0731-eff-medium--api--official--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-31T06:37:23.187625+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:28:00.692952+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": 0,
      "slot_index": 0,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-31T06:43:57.609478+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:37:27.394487+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": 0,
      "slot_index": 0,
      "terminal_state": "valid",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-31T06:47:15.326464+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:44:01.070468+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-31T06:56:47.173632+00:00",
          "http_status": 200,
          "outcome": "model-failed",
          "reached_model": true,
          "reason": "no-valid-html",
          "request_id": null,
          "started_at": "2026-07-31T06:47:18.762856+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "model-failed",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-31T07:01:54.324377+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:56:47.176147+00:00"
        }
      ],
      "block_index": 2,
      "model_reaching_attempt_index": 0,
      "slot_index": 2,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-31T07:07:58.876952+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T07:01:57.574468+00:00"
        }
      ],
      "block_index": 2,
      "model_reaching_attempt_index": 0,
      "slot_index": 2,
      "terminal_state": "valid",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-31T07:15:43.860589+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T07:08:02.633249+00:00"
        }
      ],
      "block_index": 3,
      "model_reaching_attempt_index": 0,
      "slot_index": 3,
      "terminal_state": "valid",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-31T07:23:28.877621+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T07:15:47.630954+00:00"
        }
      ],
      "block_index": 3,
      "model_reaching_attempt_index": 0,
      "slot_index": 3,
      "terminal_state": "valid",
      "variant": "P-min"
    }
  ],
  "retry_policy": {
    "max_unreachable_retries": 5,
    "rate_limit_backoff": {
      "max_attempts": 4,
      "max_total_ms": 60000
    }
  }
}