{
    "document_id": 259,
    "filename": "6a782d2c-24d7-45de-8de1-de2f86acc709_France_Server_Architecture_Diagram.pdf",
    "engine": "paddleocr_vl",
    "source_run_id": 384,
    "generated_at": "2026-08-21T08:33:20+00:00",
    "page_count": 4,
    "counts_by_type": {
        "figure": 6,
        "footer": 9,
        "header": 3,
        "heading": 49,
        "list": 3,
        "list_item": 12,
        "table": 4,
        "table_cell": 27,
        "text": 34
    },
    "timings": {
        "total_ms": 320,
        "structure_ms": 279,
        "text_layer_ms": 29,
        "build_ms": 11
    },
    "pages": [
        {
            "document_id": 259,
            "page": 1,
            "width_pt": 841.92,
            "height_pt": 594.96,
            "engine": "paddleocr_vl",
            "source_run_id": 384,
            "item_count": 46,
            "counts_by_type": {
                "figure": 1,
                "footer": 3,
                "header": 1,
                "heading": 3,
                "table": 4,
                "table_cell": 26,
                "text": 8
            },
            "build_ms": 5,
            "items": [
                {
                    "id": "p1.1",
                    "order": 1,
                    "type": "header",
                    "bbox": {
                        "l": 29.28,
                        "t": 568.32,
                        "r": 226.56,
                        "b": 557.76
                    },
                    "text": "ARCHITECTURE & INTEGRATION MODEL",
                    "attrs": {
                        "block_label": "header"
                    }
                },
                {
                    "id": "p1.2",
                    "order": 2,
                    "type": "heading",
                    "bbox": {
                        "l": 29.52,
                        "t": 549.36,
                        "r": 372.96,
                        "b": 519.84
                    },
                    "text": "Split Deployment — France",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p1.3",
                    "order": 3,
                    "type": "text",
                    "bbox": {
                        "l": 29.04,
                        "t": 515.04,
                        "r": 540.24,
                        "b": 488.16
                    },
                    "text": "Their data plane and our analysis plane both run in France, on separate hardware, joined only by a federated message link.\nPROPOSED"
                },
                {
                    "id": "p1.4",
                    "order": 4,
                    "type": "text",
                    "bbox": {
                        "l": 671.28,
                        "t": 504.72,
                        "r": 803.52,
                        "b": 493.68
                    },
                    "text": "PROPOSED | AUGUST 2026"
                },
                {
                    "id": "p1.5",
                    "order": 5,
                    "type": "heading",
                    "bbox": {
                        "l": 42,
                        "t": 446.64,
                        "r": 337.68,
                        "b": 418.08
                    },
                    "text": "Their infrastructure\nDATA PLANE · FRANCE · THEIR HARDWARE · THEIR DPA · STATEFUL",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p1.6",
                    "order": 6,
                    "type": "text",
                    "bbox": {
                        "l": 42.24,
                        "t": 400.8,
                        "r": 358.32,
                        "b": 358.8
                    },
                    "text": "Gateway, 40+ frontends, ~30 data services, MySQL, object store and their own broker. Every finding, screenshot, document, PII analysis and user account lives here.\nPRIVATE LINK\nmTLS\nfederation\nWireGuard\nor IPsec"
                },
                {
                    "id": "p1.7",
                    "order": 7,
                    "type": "table",
                    "bbox": {
                        "l": 45.36,
                        "t": 352.32,
                        "r": 354.96,
                        "b": 291.12
                    },
                    "text": "",
                    "attrs": {
                        "block_label": "table",
                        "n_rows": 3,
                        "n_cols": 3,
                        "integrity": {
                            "cells_checked": 7,
                            "cells_flagged": 0
                        }
                    },
                    "children": [
                        {
                            "id": "p1.7.1",
                            "order": 8,
                            "type": "table_cell",
                            "bbox": {
                                "l": 51.749998,
                                "t": 349.16622,
                                "r": 125.999418,
                                "b": 338.44122100000004
                            },
                            "text": "Traefik gateway",
                            "attrs": {
                                "row": 0,
                                "col": 0,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true,
                                "column_header": true,
                                "header_source": "heuristic"
                            }
                        },
                        {
                            "id": "p1.7.2",
                            "order": 9,
                            "type": "table_cell",
                            "bbox": {
                                "l": 143.249994,
                                "t": 349.16622,
                                "r": 202.649539,
                                "b": 338.44122100000004
                            },
                            "text": "accounts-api",
                            "attrs": {
                                "row": 0,
                                "col": 1,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true,
                                "column_header": true,
                                "header_source": "heuristic"
                            }
                        },
                        {
                            "id": "p1.7.3",
                            "order": 10,
                            "type": "table_cell",
                            "bbox": {
                                "l": 219.902338,
                                "t": 349.16622,
                                "r": 284.251842,
                                "b": 338.44122100000004
                            },
                            "text": "40+ frontends",
                            "attrs": {
                                "row": 0,
                                "col": 2,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true,
                                "column_header": true,
                                "header_source": "heuristic"
                            }
                        },
                        {
                            "id": "p1.7.4",
                            "order": 11,
                            "type": "table_cell",
                            "bbox": {
                                "l": 51.749998,
                                "t": 327.416221,
                                "r": 135.899336,
                                "b": 316.69122200000004
                            },
                            "text": "~30 data services",
                            "attrs": {
                                "row": 1,
                                "col": 0,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.7.5",
                            "order": 12,
                            "type": "table_cell",
                            "bbox": {
                                "l": 153.152341,
                                "t": 327.416221,
                                "r": 197.70201,
                                "b": 316.69122200000004
                            },
                            "text": "MySQL 8.4",
                            "attrs": {
                                "row": 1,
                                "col": 1,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.7.6",
                            "order": 13,
                            "type": "table_cell",
                            "bbox": {
                                "l": 214.957026,
                                "t": 327.416221,
                                "r": 351.008907,
                                "b": 316.69122200000004
                            },
                            "text": "object store their broker",
                            "attrs": {
                                "row": 1,
                                "col": 2,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.7.7",
                            "order": 14,
                            "type": "table_cell",
                            "bbox": {
                                "l": 45.36,
                                "t": 311.52,
                                "r": 354.96,
                                "b": 291.12
                            },
                            "text": "DETAIL ON PAGE 2",
                            "attrs": {
                                "row": 2,
                                "col": 0,
                                "rowspan": 1,
                                "colspan": 3
                            }
                        }
                    ]
                },
                {
                    "id": "p1.8",
                    "order": 15,
                    "type": "text",
                    "bbox": {
                        "l": 387.84,
                        "t": 427.44,
                        "r": 453.84,
                        "b": 364.08
                    },
                    "text": "PRIVATE LINK\nmTLS\nfederation\nWireGuard\nor IPsec"
                },
                {
                    "id": "p1.9",
                    "order": 16,
                    "type": "text",
                    "bbox": {
                        "l": 396.24,
                        "t": 334.08,
                        "r": 447.6,
                        "b": 315.6
                    },
                    "text": "← verdicts crawl jobs"
                },
                {
                    "id": "p1.10",
                    "order": 17,
                    "type": "heading",
                    "bbox": {
                        "l": 480.48,
                        "t": 446.64,
                        "r": 777.36,
                        "b": 418.32
                    },
                    "text": "Our infrastructure\nANALYSIS PLANE · FRANCE · OUR HARDWARE · OUR IP · STATELESS",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p1.11",
                    "order": 18,
                    "type": "text",
                    "bbox": {
                        "l": 481.68,
                        "t": 401.04,
                        "r": 777.84,
                        "b": 359.28
                    },
                    "text": "Broker, crawler fleet, engine-service, ai-facade and Redis. It holds the tests and prompts and nothing else — no findings, no accounts, no documents."
                },
                {
                    "id": "p1.12",
                    "order": 19,
                    "type": "figure",
                    "bbox": {
                        "l": 457.44,
                        "t": 347.28,
                        "r": 465.84,
                        "b": 338.16
                    },
                    "text": "",
                    "attrs": {
                        "block_label": "image"
                    }
                },
                {
                    "id": "p1.13",
                    "order": 20,
                    "type": "table",
                    "bbox": {
                        "l": 489.6,
                        "t": 349.16622,
                        "r": 705.36,
                        "b": 337.68
                    },
                    "text": "",
                    "attrs": {
                        "n_rows": 1,
                        "n_cols": 3,
                        "integrity": {
                            "cells_checked": 3,
                            "cells_flagged": 0
                        }
                    },
                    "children": [
                        {
                            "id": "p1.13.1",
                            "order": 21,
                            "type": "table_cell",
                            "bbox": {
                                "l": 490.68748,
                                "t": 349.16622,
                                "r": 540.187107,
                                "b": 338.44122100000004
                            },
                            "text": "our broker",
                            "attrs": {
                                "row": 0,
                                "col": 0,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.13.2",
                            "order": 22,
                            "type": "table_cell",
                            "bbox": {
                                "l": 557.437477,
                                "t": 349.16622,
                                "r": 631.686897,
                                "b": 338.44122100000004
                            },
                            "text": "crawler-manager",
                            "attrs": {
                                "row": 0,
                                "col": 1,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.13.3",
                            "order": 23,
                            "type": "table_cell",
                            "bbox": {
                                "l": 648.937473,
                                "t": 349.16622,
                                "r": 703.387059,
                                "b": 338.44122100000004
                            },
                            "text": "crawler × 10",
                            "attrs": {
                                "row": 0,
                                "col": 2,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        }
                    ]
                },
                {
                    "id": "p1.14",
                    "order": 24,
                    "type": "table",
                    "bbox": {
                        "l": 555.84,
                        "t": 348.96,
                        "r": 792,
                        "b": 337.2
                    },
                    "text": "crawler-manager | crawler x10 | engine-service",
                    "attrs": {
                        "ai_retyped_from": "text",
                        "ai_reason": "Item #24 duplicates the chip row already extracted as table cells; it is a row of chips, not standalone text."
                    },
                    "children": [
                        {
                            "type": "table_cell",
                            "bbox": {
                                "l": 711.42,
                                "t": 352.81,
                                "r": 799.82,
                                "b": 337.94
                            },
                            "text": "engine-service",
                            "attrs": {
                                "source": "ai_vision",
                                "reason": "The 'engine-service' chip in our-infrastructure chip row is not covered by any table_cell (only mentioned loosely in overlapping text item #24)."
                            },
                            "children": [],
                            "order": 25,
                            "id": "p1.14.1"
                        }
                    ]
                },
                {
                    "id": "p1.15",
                    "order": 26,
                    "type": "text",
                    "bbox": {
                        "l": 489.6,
                        "t": 327.6,
                        "r": 579.36,
                        "b": 315.84
                    },
                    "text": "ai-facade Redis"
                },
                {
                    "id": "p1.16",
                    "order": 27,
                    "type": "text",
                    "bbox": {
                        "l": 482.4,
                        "t": 306.24,
                        "r": 569.76,
                        "b": 295.44
                    },
                    "text": "DETAIL ON PAGE 3"
                },
                {
                    "id": "p1.17",
                    "order": 28,
                    "type": "table",
                    "bbox": {
                        "l": 38.16,
                        "t": 259.2,
                        "r": 803.76,
                        "b": 120.72
                    },
                    "text": "",
                    "attrs": {
                        "block_label": "table",
                        "n_rows": 5,
                        "n_cols": 3,
                        "integrity": {
                            "cells_checked": 15,
                            "cells_flagged": 0
                        }
                    },
                    "children": [
                        {
                            "id": "p1.17.1",
                            "order": 29,
                            "type": "table_cell",
                            "bbox": {
                                "l": 45.749998,
                                "t": 254.666224,
                                "r": 154.154046,
                                "b": 243.94122500000003
                            },
                            "text": "WHERE THE LINE FALLS",
                            "attrs": {
                                "row": 0,
                                "col": 0,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true,
                                "column_header": true,
                                "header_source": "heuristic"
                            }
                        },
                        {
                            "id": "p1.17.2",
                            "order": 30,
                            "type": "table_cell",
                            "bbox": {
                                "l": 168.749993,
                                "t": 254.666224,
                                "r": 282.598991,
                                "b": 243.94122500000003
                            },
                            "text": "ANALYSIS PLANE - OURS",
                            "attrs": {
                                "row": 0,
                                "col": 1,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true,
                                "column_header": true,
                                "header_source": "heuristic"
                            }
                        },
                        {
                            "id": "p1.17.3",
                            "order": 31,
                            "type": "table_cell",
                            "bbox": {
                                "l": 487.68748,
                                "t": 254.666224,
                                "r": 590.646578,
                                "b": 243.94122500000003
                            },
                            "text": "DATA PLANE - THEIRS",
                            "attrs": {
                                "row": 0,
                                "col": 2,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true,
                                "column_header": true,
                                "header_source": "heuristic"
                            }
                        },
                        {
                            "id": "p1.17.4",
                            "order": 32,
                            "type": "table_cell",
                            "bbox": {
                                "l": 45.749998,
                                "t": 225.703776,
                                "r": 71.158529,
                                "b": 213.73857600000002
                            },
                            "text": "Holds",
                            "attrs": {
                                "row": 1,
                                "col": 0,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.17.5",
                            "order": 33,
                            "type": "table_cell",
                            "bbox": {
                                "l": 168.749993,
                                "t": 225.703776,
                                "r": 283.039643,
                                "b": 213.73857600000002
                            },
                            "text": "Tests, crawler, AI prompts",
                            "attrs": {
                                "row": 1,
                                "col": 1,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.17.6",
                            "order": 34,
                            "type": "table_cell",
                            "bbox": {
                                "l": 487.68748,
                                "t": 225.703776,
                                "r": 682.17094,
                                "b": 213.73857600000002
                            },
                            "text": "Every result, document, screenshot, account",
                            "attrs": {
                                "row": 1,
                                "col": 2,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.17.7",
                            "order": 35,
                            "type": "table_cell",
                            "bbox": {
                                "l": 45.749998,
                                "t": 195.703777,
                                "r": 68.779509,
                                "b": 183.73857700000002
                            },
                            "text": "State",
                            "attrs": {
                                "row": 2,
                                "col": 0,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.17.8",
                            "order": 36,
                            "type": "table_cell",
                            "bbox": {
                                "l": 168.749993,
                                "t": 195.703777,
                                "r": 289.240628,
                                "b": 183.73857700000002
                            },
                            "text": "None that survives a restart",
                            "attrs": {
                                "row": 2,
                                "col": 1,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.17.9",
                            "order": 37,
                            "type": "table_cell",
                            "bbox": {
                                "l": 487.68748,
                                "t": 195.703777,
                                "r": 518.214774,
                                "b": 183.73857700000002
                            },
                            "text": "All of it",
                            "attrs": {
                                "row": 2,
                                "col": 2,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.17.10",
                            "order": 38,
                            "type": "table_cell",
                            "bbox": {
                                "l": 45.749998,
                                "t": 165.703778,
                                "r": 104.484039,
                                "b": 153.73857800000002
                            },
                            "text": "Reachable by",
                            "attrs": {
                                "row": 3,
                                "col": 0,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.17.11",
                            "order": 39,
                            "type": "table_cell",
                            "bbox": {
                                "l": 168.749993,
                                "t": 165.703778,
                                "r": 312.591934,
                                "b": 153.73857800000002
                            },
                            "text": "Their broker, over the private link",
                            "attrs": {
                                "row": 3,
                                "col": 1,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.17.12",
                            "order": 40,
                            "type": "table_cell",
                            "bbox": {
                                "l": 487.68748,
                                "t": 165.703778,
                                "r": 590.589099,
                                "b": 153.73857800000002
                            },
                            "text": "Their browsers, directly",
                            "attrs": {
                                "row": 3,
                                "col": 2,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.17.13",
                            "order": 41,
                            "type": "table_cell",
                            "bbox": {
                                "l": 45.749998,
                                "t": 135.70378000000005,
                                "r": 99.745549,
                                "b": 123.73857900000002
                            },
                            "text": "If they leave",
                            "attrs": {
                                "row": 4,
                                "col": 0,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.17.14",
                            "order": 42,
                            "type": "table_cell",
                            "bbox": {
                                "l": 168.749993,
                                "t": 135.70378000000005,
                                "r": 235.001321,
                                "b": 123.73857900000002
                            },
                            "text": "We keep the IP",
                            "attrs": {
                                "row": 4,
                                "col": 1,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        },
                        {
                            "id": "p1.17.15",
                            "order": 43,
                            "type": "table_cell",
                            "bbox": {
                                "l": 487.68748,
                                "t": 135.70378000000005,
                                "r": 577.026819,
                                "b": 123.73857900000002
                            },
                            "text": "They keep their data",
                            "attrs": {
                                "row": 4,
                                "col": 2,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        }
                    ]
                },
                {
                    "id": "p1.18",
                    "order": 44,
                    "type": "footer",
                    "bbox": {
                        "l": 29.04,
                        "t": 36,
                        "r": 263.04,
                        "b": 27.36
                    },
                    "text": "SPLIT DEPLOYMENT · FRANCE · ARCHITECTURE TEAM",
                    "attrs": {
                        "block_label": "footer"
                    }
                },
                {
                    "id": "p1.19",
                    "order": 45,
                    "type": "footer",
                    "bbox": {
                        "l": 359.52,
                        "t": 36.24,
                        "r": 685.2,
                        "b": 27.12
                    },
                    "text": "BLUE = THEIR HARDWARE, THEIR DPA · AMBER = OUR HARDWARE, OUR IP",
                    "attrs": {
                        "block_label": "footer"
                    }
                },
                {
                    "id": "p1.20",
                    "order": 46,
                    "type": "footer",
                    "bbox": {
                        "l": 782.4,
                        "t": 36.48,
                        "r": 812.16,
                        "b": 26.4
                    },
                    "text": "1 / 4",
                    "attrs": {
                        "block_label": "number"
                    }
                }
            ],
            "ai_vision": {
                "model": "claude-opus-5",
                "confidence": 78,
                "added": 1,
                "retyped": 1
            }
        },
        {
            "document_id": 259,
            "page": 2,
            "width_pt": 841.92,
            "height_pt": 594.96,
            "engine": "paddleocr_vl",
            "source_run_id": 384,
            "item_count": 23,
            "counts_by_type": {
                "figure": 2,
                "footer": 2,
                "heading": 11,
                "list": 1,
                "list_item": 3,
                "text": 4
            },
            "build_ms": 1,
            "items": [
                {
                    "id": "p2.1",
                    "order": 1,
                    "type": "figure",
                    "bbox": {
                        "l": 731.04,
                        "t": 566.4,
                        "r": 802.56,
                        "b": 530.16
                    },
                    "text": "",
                    "attrs": {
                        "role": "page_header",
                        "block_label": "header_image",
                        "embedded_text": "STATEFUL"
                    }
                },
                {
                    "id": "p2.2",
                    "order": 2,
                    "type": "heading",
                    "bbox": {
                        "l": 44.16,
                        "t": 553.92,
                        "r": 402.24,
                        "b": 537.12
                    },
                    "text": "Their infrastructure — what runs on their server",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p2.3",
                    "order": 3,
                    "type": "heading",
                    "bbox": {
                        "l": 43.92,
                        "t": 533.28,
                        "r": 309.6,
                        "b": 522.24
                    },
                    "text": "DATA PLANE · FRANCE · THEIR HARDWARE · THEIR DPA",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p2.4",
                    "order": 4,
                    "type": "figure",
                    "bbox": {
                        "l": 33.84,
                        "t": 495.36,
                        "r": 471.36,
                        "b": 205.68
                    },
                    "text": "",
                    "attrs": {
                        "block_label": "image",
                        "embedded_text": "FORWARD-AUTH →\ntheir domain · their TLS certificates accounts-api\nsessions & user accounts\nstatic JS served by nginx\n~30 read/write APIs\nlandscape evidence content seo geo security privacy okf stats\nroadmap academy guardian toolbar feedback accounts …\nTheir broker\nscreenshots · OKF · PDFs RabbitMQ · federated to ours"
                    },
                    "children": [
                        {
                            "id": "p2.4.1",
                            "order": 5,
                            "type": "text",
                            "bbox": {
                                "l": 41.28,
                                "t": 490.08,
                                "r": 221.28,
                                "b": 475.92
                            },
                            "text": "Their staff browsers, inside their estate",
                            "attrs": {
                                "block_label": "paragraph_title",
                                "ai_retyped_from": "heading",
                                "ai_reason": "Item combines heading 'Their staff' with running text; but primarily it is a diagram node label — the extracted span also mismatches; still it is a labeled row…"
                            }
                        },
                        {
                            "id": "p2.4.2",
                            "order": 6,
                            "type": "heading",
                            "bbox": {
                                "l": 443.04,
                                "t": 488.4,
                                "r": 471.84,
                                "b": 478.8
                            },
                            "text": "HTTPS",
                            "attrs": {
                                "block_label": "paragraph_title"
                            }
                        },
                        {
                            "id": "p2.4.3",
                            "order": 7,
                            "type": "heading",
                            "bbox": {
                                "l": 41.76,
                                "t": 446.64,
                                "r": 127.68,
                                "b": 432
                            },
                            "text": "Traefik gateway",
                            "attrs": {
                                "block_label": "paragraph_title"
                            }
                        },
                        {
                            "id": "p2.4.4",
                            "order": 8,
                            "type": "heading",
                            "bbox": {
                                "l": 40.56,
                                "t": 378.96,
                                "r": 118.56,
                                "b": 364.8
                            },
                            "text": "40+ frontends",
                            "attrs": {
                                "block_label": "paragraph_title"
                            }
                        },
                        {
                            "id": "p2.4.5",
                            "order": 9,
                            "type": "heading",
                            "bbox": {
                                "l": 41.52,
                                "t": 332.4,
                                "r": 116.4,
                                "b": 318.96
                            },
                            "text": "Data services",
                            "attrs": {
                                "block_label": "paragraph_title"
                            }
                        },
                        {
                            "id": "p2.4.6",
                            "order": 10,
                            "type": "heading",
                            "bbox": {
                                "l": 39.84,
                                "t": 240.72,
                                "r": 96,
                                "b": 227.04
                            },
                            "text": "MySQL 8.4",
                            "attrs": {
                                "block_label": "paragraph_title"
                            }
                        },
                        {
                            "id": "p2.4.7",
                            "order": 11,
                            "type": "heading",
                            "bbox": {
                                "l": 188.88,
                                "t": 240.48,
                                "r": 252.24,
                                "b": 227.04
                            },
                            "text": "Object store",
                            "attrs": {
                                "block_label": "paragraph_title"
                            }
                        },
                        {
                            "id": "p2.4.8",
                            "order": 12,
                            "type": "text",
                            "bbox": {
                                "l": 39.6,
                                "t": 224.88,
                                "r": 150,
                                "b": 214.08
                            },
                            "text": "16 schemas, one per service"
                        }
                    ]
                },
                {
                    "id": "p2.5",
                    "order": 13,
                    "type": "heading",
                    "bbox": {
                        "l": 495.84,
                        "t": 488.4,
                        "r": 615.36,
                        "b": 477.6
                    },
                    "text": "EVERYTHING STORED HERE",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p2.6",
                    "order": 14,
                    "type": "text",
                    "bbox": {
                        "l": 494.64,
                        "t": 471.36,
                        "r": 798,
                        "b": 430.32
                    },
                    "text": "Findings, screenshots, documents, PII analysis, remediation tracking and every user account — on infrastructure they own, under their own DPA."
                },
                {
                    "id": "p2.7",
                    "order": 15,
                    "type": "heading",
                    "bbox": {
                        "l": 495.84,
                        "t": 396.96,
                        "r": 593.04,
                        "b": 383.04
                    },
                    "text": "What they control",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p2.8",
                    "order": 16,
                    "type": "list",
                    "bbox": {
                        "l": 495.36,
                        "t": 376.56,
                        "r": 784.56,
                        "b": 294.24
                    },
                    "text": "",
                    "attrs": {
                        "item_count": 3
                    },
                    "children": [
                        {
                            "id": "p2.8.1",
                            "order": 17,
                            "type": "list_item",
                            "bbox": {
                                "l": 495.6,
                                "t": 376.56,
                                "r": 750.48,
                                "b": 363.36
                            },
                            "text": "Database backups, access controls and disaster recovery."
                        },
                        {
                            "id": "p2.8.2",
                            "order": 18,
                            "type": "list_item",
                            "bbox": {
                                "l": 495.36,
                                "t": 356.16,
                                "r": 784.56,
                                "b": 328.8
                            },
                            "text": "No analytics and no telemetry leave this estate — we cannot read their results."
                        },
                        {
                            "id": "p2.8.3",
                            "order": 19,
                            "type": "list_item",
                            "bbox": {
                                "l": 495.36,
                                "t": 321.12,
                                "r": 774.48,
                                "b": 294.24
                            },
                            "text": "Single-jurisdiction infrastructure: no multi-region replication to reason about."
                        }
                    ]
                },
                {
                    "id": "p2.9",
                    "order": 20,
                    "type": "heading",
                    "bbox": {
                        "l": 496.32,
                        "t": 262.08,
                        "r": 589.44,
                        "b": 251.04
                    },
                    "text": "HOW THEY REACH US",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p2.10",
                    "order": 21,
                    "type": "text",
                    "bbox": {
                        "l": 494.16,
                        "t": 246.96,
                        "r": 794.16,
                        "b": 218.88
                    },
                    "text": "They never call us over HTTP. Their frontends and services talk only to their own broker; the broker federates across the private link."
                },
                {
                    "id": "p2.11",
                    "order": 22,
                    "type": "footer",
                    "bbox": {
                        "l": 29.28,
                        "t": 36,
                        "r": 160.56,
                        "b": 27.12
                    },
                    "text": "SPLIT DEPLOYMENT · FRANCE",
                    "attrs": {
                        "block_label": "footer"
                    }
                },
                {
                    "id": "p2.12",
                    "order": 23,
                    "type": "footer",
                    "bbox": {
                        "l": 782.64,
                        "t": 36.24,
                        "r": 812.16,
                        "b": 26.4
                    },
                    "text": "2 / 4",
                    "attrs": {
                        "block_label": "number"
                    }
                }
            ],
            "ai_vision": {
                "model": "claude-opus-5",
                "confidence": 76,
                "added": 0,
                "retyped": 1
            }
        },
        {
            "document_id": 259,
            "page": 3,
            "width_pt": 841.92,
            "height_pt": 594.96,
            "engine": "paddleocr_vl",
            "source_run_id": 384,
            "item_count": 32,
            "counts_by_type": {
                "footer": 2,
                "header": 1,
                "heading": 12,
                "table_cell": 2,
                "text": 15
            },
            "build_ms": 2,
            "items": [
                {
                    "id": "p3.1",
                    "order": 1,
                    "type": "header",
                    "bbox": {
                        "l": 732.24,
                        "t": 545.52,
                        "r": 788.16,
                        "b": 534.72
                    },
                    "text": "STATELESS",
                    "attrs": {
                        "block_label": "header"
                    }
                },
                {
                    "id": "p3.2",
                    "order": 2,
                    "type": "heading",
                    "bbox": {
                        "l": 44.4,
                        "t": 553.44,
                        "r": 380.64,
                        "b": 537.12
                    },
                    "text": "Our infrastructure — what runs on our server",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.3",
                    "order": 3,
                    "type": "heading",
                    "bbox": {
                        "l": 43.68,
                        "t": 533.52,
                        "r": 303.84,
                        "b": 522.24
                    },
                    "text": "ANALYSIS PLANE · FRANCE · OUR HARDWARE · OUR IP",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.4",
                    "order": 4,
                    "type": "heading",
                    "bbox": {
                        "l": 43.2,
                        "t": 487.44,
                        "r": 163.44,
                        "b": 473.52
                    },
                    "text": "Our RabbitMQ broker",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.5",
                    "order": 5,
                    "type": "text",
                    "bbox": {
                        "l": 42.96,
                        "t": 471.6,
                        "r": 197.52,
                        "b": 460.8
                    },
                    "text": "publishes results out · never stores them"
                },
                {
                    "id": "p3.6",
                    "order": 6,
                    "type": "heading",
                    "bbox": {
                        "l": 400.8,
                        "t": 480.24,
                        "r": 451.68,
                        "b": 469.2
                    },
                    "text": "FEDERATED",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.7",
                    "order": 7,
                    "type": "text",
                    "bbox": {
                        "l": 40.56,
                        "t": 429.12,
                        "r": 326.4,
                        "b": 415.92
                    },
                    "text": "",
                    "attrs": {
                        "n_rows": 1,
                        "n_cols": 2,
                        "integrity": {
                            "cells_checked": 1,
                            "cells_flagged": 0
                        },
                        "ai_retyped_from": "table",
                        "ai_reason": "The region is two side-by-side cards (crawler-manager / crawler ×10), not a table with cells."
                    },
                    "children": [
                        {
                            "id": "p3.7.1",
                            "order": 8,
                            "type": "table_cell",
                            "bbox": {
                                "l": 40.56,
                                "t": 429.12,
                                "r": 183.48,
                                "b": 415.92
                            },
                            "text": "",
                            "attrs": {
                                "row": 0,
                                "col": 0,
                                "rowspan": 1,
                                "colspan": 1
                            }
                        },
                        {
                            "id": "p3.7.2",
                            "order": 9,
                            "type": "table_cell",
                            "bbox": {
                                "l": 265.910149,
                                "t": 428.876367,
                                "r": 324.172698,
                                "b": 415.990767
                            },
                            "text": "crawler × 10",
                            "attrs": {
                                "row": 0,
                                "col": 1,
                                "rowspan": 1,
                                "colspan": 1,
                                "bbox_refit": true
                            }
                        }
                    ]
                },
                {
                    "id": "p3.8",
                    "order": 10,
                    "type": "text",
                    "bbox": {
                        "l": 40.8,
                        "t": 413.76,
                        "r": 378.24,
                        "b": 402.48
                    },
                    "text": "assigns crawl slots renders pages · runs 6 passes"
                },
                {
                    "id": "p3.9",
                    "order": 11,
                    "type": "heading",
                    "bbox": {
                        "l": 41.28,
                        "t": 377.52,
                        "r": 116.64,
                        "b": 364.8
                    },
                    "text": "engine-service",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.10",
                    "order": 12,
                    "type": "heading",
                    "bbox": {
                        "l": 264.24,
                        "t": 377.52,
                        "r": 313.92,
                        "b": 365.28
                    },
                    "text": "ai-facade",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.11",
                    "order": 13,
                    "type": "text",
                    "bbox": {
                        "l": 41.04,
                        "t": 362.16,
                        "r": 345.12,
                        "b": 350.64
                    },
                    "text": "single-URL scans holds the prompt set"
                },
                {
                    "id": "p3.12",
                    "order": 14,
                    "type": "heading",
                    "bbox": {
                        "l": 496.8,
                        "t": 488.16,
                        "r": 599.76,
                        "b": 477.6
                    },
                    "text": "NOTHING STORED HERE",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.13",
                    "order": 15,
                    "type": "text",
                    "bbox": {
                        "l": 494.4,
                        "t": 471.36,
                        "r": 792.48,
                        "b": 430.32
                    },
                    "text": "No findings, no accounts, no documents. Their data never travels to or resides on our infrastructure — which is why no code disclosure is needed."
                },
                {
                    "id": "p3.14",
                    "order": 16,
                    "type": "text",
                    "bbox": {
                        "l": 496.08,
                        "t": 398.64,
                        "r": 571.44,
                        "b": 387.6
                    },
                    "text": "OUTBOUND HTTPS"
                },
                {
                    "id": "p3.15",
                    "order": 17,
                    "type": "heading",
                    "bbox": {
                        "l": 496.32,
                        "t": 384.48,
                        "r": 604.08,
                        "b": 371.28
                    },
                    "text": "Their public websites",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.16",
                    "order": 18,
                    "type": "text",
                    "bbox": {
                        "l": 495.12,
                        "t": 368.16,
                        "r": 682.08,
                        "b": 355.68
                    },
                    "text": "the pages under test, fetched by the crawlers"
                },
                {
                    "id": "p3.17",
                    "order": 19,
                    "type": "heading",
                    "bbox": {
                        "l": 41.04,
                        "t": 321.12,
                        "r": 72,
                        "b": 308.88
                    },
                    "text": "Redis",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.18",
                    "order": 20,
                    "type": "text",
                    "bbox": {
                        "l": 240.72,
                        "t": 319.44,
                        "r": 461.52,
                        "b": 308.64
                    },
                    "text": "frontier · seen-set · slot queue — nothing survives a restart"
                },
                {
                    "id": "p3.19",
                    "order": 21,
                    "type": "heading",
                    "bbox": {
                        "l": 43.44,
                        "t": 275.76,
                        "r": 174.72,
                        "b": 264.48
                    },
                    "text": "★ NEVER LEAVES THIS BOX",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.20",
                    "order": 22,
                    "type": "text",
                    "bbox": {
                        "l": 48.48,
                        "t": 254.88,
                        "r": 370.8,
                        "b": 242.16
                    },
                    "text": "content analyzer\nSEO / GEO analyzers"
                },
                {
                    "id": "p3.21",
                    "order": 23,
                    "type": "text",
                    "bbox": {
                        "l": 49.68,
                        "t": 254.64,
                        "r": 158.4,
                        "b": 242.64
                    },
                    "text": "86 WCAG SC test files"
                },
                {
                    "id": "p3.22",
                    "order": 24,
                    "type": "text",
                    "bbox": {
                        "l": 48.48,
                        "t": 231.36,
                        "r": 410.16,
                        "b": 219.12
                    },
                    "text": "PDF remediation engine"
                },
                {
                    "id": "p3.23",
                    "order": 25,
                    "type": "text",
                    "bbox": {
                        "l": 49.92,
                        "t": 230.88,
                        "r": 281.52,
                        "b": 219.36
                    },
                    "text": "web security analyzer data privacy analyzer"
                },
                {
                    "id": "p3.24",
                    "order": 26,
                    "type": "text",
                    "bbox": {
                        "l": 50.16,
                        "t": 208.32,
                        "r": 119.28,
                        "b": 196.56
                    },
                    "text": "AI prompt set"
                },
                {
                    "id": "p3.25",
                    "order": 27,
                    "type": "text",
                    "bbox": {
                        "l": 42,
                        "t": 185.28,
                        "r": 426,
                        "b": 159.6
                    },
                    "text": "Not compiled into their binaries, not shipped as an image they can inspect, not present in their database. They receive verdicts only."
                },
                {
                    "id": "p3.26",
                    "order": 28,
                    "type": "heading",
                    "bbox": {
                        "l": 496.32,
                        "t": 326.64,
                        "r": 581.28,
                        "b": 315.6
                    },
                    "text": "OUTBOUND HTTPS ▲",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.27",
                    "order": 29,
                    "type": "heading",
                    "bbox": {
                        "l": 496.08,
                        "t": 312.24,
                        "r": 537.84,
                        "b": 299.28
                    },
                    "text": "OpenAI",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p3.28",
                    "order": 30,
                    "type": "text",
                    "bbox": {
                        "l": 494.88,
                        "t": 295.92,
                        "r": 790.32,
                        "b": 270.72
                    },
                    "text": "Calls may include page content. Their DPO should review OpenAI's DPA, or AI features can be disabled."
                },
                {
                    "id": "p3.29",
                    "order": 31,
                    "type": "footer",
                    "bbox": {
                        "l": 29.28,
                        "t": 36,
                        "r": 160.56,
                        "b": 27.12
                    },
                    "text": "SPLIT DEPLOYMENT · FRANCE",
                    "attrs": {
                        "block_label": "footer"
                    }
                },
                {
                    "id": "p3.30",
                    "order": 32,
                    "type": "footer",
                    "bbox": {
                        "l": 783.36,
                        "t": 36.24,
                        "r": 812.16,
                        "b": 26.4
                    },
                    "text": "3 / 4",
                    "attrs": {
                        "block_label": "number"
                    }
                }
            ],
            "ai_vision": {
                "model": "claude-opus-5",
                "confidence": 62,
                "added": 0,
                "retyped": 1
            }
        },
        {
            "document_id": 259,
            "page": 4,
            "width_pt": 841.92,
            "height_pt": 594.96,
            "engine": "paddleocr_vl",
            "source_run_id": 384,
            "item_count": 47,
            "counts_by_type": {
                "footer": 2,
                "header": 1,
                "heading": 22,
                "list": 2,
                "list_item": 9,
                "text": 11
            },
            "build_ms": 3,
            "items": [
                {
                    "id": "p4.1",
                    "order": 1,
                    "type": "header",
                    "bbox": {
                        "l": 218.16,
                        "t": 558.96,
                        "r": 513.84,
                        "b": 545.76
                    },
                    "text": "every step stays in France; the only crossing is the federated queue",
                    "attrs": {
                        "block_label": "header"
                    }
                },
                {
                    "id": "p4.2",
                    "order": 2,
                    "type": "heading",
                    "bbox": {
                        "l": 30.24,
                        "t": 564.72,
                        "r": 210.72,
                        "b": 545.28
                    },
                    "text": "One crawl, end to end",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.3",
                    "order": 3,
                    "type": "heading",
                    "bbox": {
                        "l": 40.08,
                        "t": 506.64,
                        "r": 59.52,
                        "b": 492.48
                    },
                    "text": "01",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.4",
                    "order": 4,
                    "type": "heading",
                    "bbox": {
                        "l": 178.32,
                        "t": 504.24,
                        "r": 206.88,
                        "b": 494.16
                    },
                    "text": "THEIRS",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.5",
                    "order": 5,
                    "type": "heading",
                    "bbox": {
                        "l": 237.36,
                        "t": 506.4,
                        "r": 256.08,
                        "b": 492.24
                    },
                    "text": "02",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.6",
                    "order": 6,
                    "type": "heading",
                    "bbox": {
                        "l": 374.64,
                        "t": 504.24,
                        "r": 404.4,
                        "b": 494.16
                    },
                    "text": "THEIRS",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.7",
                    "order": 7,
                    "type": "heading",
                    "bbox": {
                        "l": 39.84,
                        "t": 486,
                        "r": 119.28,
                        "b": 473.28
                    },
                    "text": "Scan requested",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.8",
                    "order": 8,
                    "type": "heading",
                    "bbox": {
                        "l": 237.12,
                        "t": 486,
                        "r": 341.28,
                        "b": 473.28
                    },
                    "text": "Job onto their queue",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.9",
                    "order": 9,
                    "type": "text",
                    "bbox": {
                        "l": 39.6,
                        "t": 468,
                        "r": 409.68,
                        "b": 443.76
                    },
                    "text": "A user in their UI asks for a crawl; the data service records the job.\nThe request is published to their broker — no HTTP call to us."
                },
                {
                    "id": "p4.10",
                    "order": 10,
                    "type": "heading",
                    "bbox": {
                        "l": 433.92,
                        "t": 506.64,
                        "r": 452.88,
                        "b": 492.24
                    },
                    "text": "03",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.11",
                    "order": 11,
                    "type": "text",
                    "bbox": {
                        "l": 576.48,
                        "t": 505.2,
                        "r": 602.64,
                        "b": 492.96
                    },
                    "text": "",
                    "attrs": {
                        "block_label": "image",
                        "embedded_text": "LINK",
                        "ai_retyped_from": "figure",
                        "ai_reason": "This is the 'LINK' badge label text on card 03, not a figure."
                    }
                },
                {
                    "id": "p4.12",
                    "order": 12,
                    "type": "heading",
                    "bbox": {
                        "l": 433.44,
                        "t": 485.76,
                        "r": 521.28,
                        "b": 474
                    },
                    "text": "Federated across",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.13",
                    "order": 13,
                    "type": "text",
                    "bbox": {
                        "l": 433.2,
                        "t": 468.24,
                        "r": 597.36,
                        "b": 444.48
                    },
                    "text": "The job crosses the mTLS private link to our broker."
                },
                {
                    "id": "p4.14",
                    "order": 14,
                    "type": "heading",
                    "bbox": {
                        "l": 630.72,
                        "t": 506.4,
                        "r": 649.44,
                        "b": 492.48
                    },
                    "text": "04",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.15",
                    "order": 15,
                    "type": "heading",
                    "bbox": {
                        "l": 774.72,
                        "t": 504.24,
                        "r": 797.76,
                        "b": 493.92
                    },
                    "text": "OURS",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.16",
                    "order": 16,
                    "type": "heading",
                    "bbox": {
                        "l": 630.24,
                        "t": 486.24,
                        "r": 703.68,
                        "b": 473.04
                    },
                    "text": "Slots assigned",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.17",
                    "order": 17,
                    "type": "text",
                    "bbox": {
                        "l": 630,
                        "t": 468,
                        "r": 789.6,
                        "b": 444
                    },
                    "text": "crawler-manager claims a slot in Redis and dispatches crawlers."
                },
                {
                    "id": "p4.18",
                    "order": 18,
                    "type": "heading",
                    "bbox": {
                        "l": 40.32,
                        "t": 405.36,
                        "r": 59.52,
                        "b": 391.2
                    },
                    "text": "05",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.19",
                    "order": 19,
                    "type": "text",
                    "bbox": {
                        "l": 183.6,
                        "t": 403.44,
                        "r": 208.32,
                        "b": 392.4
                    },
                    "text": "",
                    "attrs": {
                        "block_label": "image",
                        "embedded_text": "OURS",
                        "ai_retyped_from": "figure",
                        "ai_reason": "This is the 'OURS' badge label text on card 05, not a figure."
                    }
                },
                {
                    "id": "p4.20",
                    "order": 20,
                    "type": "heading",
                    "bbox": {
                        "l": 39.84,
                        "t": 384.72,
                        "r": 114.24,
                        "b": 372.24
                    },
                    "text": "Six passes run",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.21",
                    "order": 21,
                    "type": "text",
                    "bbox": {
                        "l": 39.36,
                        "t": 366.72,
                        "r": 203.28,
                        "b": 329.52
                    },
                    "text": "Crawlers fetch their public pages and run WCAG, Content, SEO, GEO, Security and Privacy."
                },
                {
                    "id": "p4.22",
                    "order": 22,
                    "type": "heading",
                    "bbox": {
                        "l": 237.36,
                        "t": 405.12,
                        "r": 255.6,
                        "b": 390.96
                    },
                    "text": "06",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.23",
                    "order": 23,
                    "type": "text",
                    "bbox": {
                        "l": 380.16,
                        "t": 403.44,
                        "r": 406.08,
                        "b": 392.16
                    },
                    "text": "",
                    "attrs": {
                        "block_label": "image",
                        "embedded_text": "LINK",
                        "ai_retyped_from": "figure",
                        "ai_reason": "This is the 'LINK' badge label text on card 06, not a figure."
                    }
                },
                {
                    "id": "p4.24",
                    "order": 24,
                    "type": "heading",
                    "bbox": {
                        "l": 236.88,
                        "t": 384.96,
                        "r": 330.96,
                        "b": 371.76
                    },
                    "text": "Verdicts published",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.25",
                    "order": 25,
                    "type": "text",
                    "bbox": {
                        "l": 235.68,
                        "t": 366.72,
                        "r": 406.08,
                        "b": 342.72
                    },
                    "text": "Structured results — not rules — federate back to their broker."
                },
                {
                    "id": "p4.26",
                    "order": 26,
                    "type": "heading",
                    "bbox": {
                        "l": 433.92,
                        "t": 405.36,
                        "r": 452.64,
                        "b": 390.96
                    },
                    "text": "07",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.27",
                    "order": 27,
                    "type": "heading",
                    "bbox": {
                        "l": 570.24,
                        "t": 402.72,
                        "r": 601.2,
                        "b": 393.36
                    },
                    "text": "THEIRS",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.28",
                    "order": 28,
                    "type": "heading",
                    "bbox": {
                        "l": 433.44,
                        "t": 384.96,
                        "r": 524.88,
                        "b": 372.24
                    },
                    "text": "Stored and shown",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.29",
                    "order": 29,
                    "type": "text",
                    "bbox": {
                        "l": 433.44,
                        "t": 366.72,
                        "r": 593.76,
                        "b": 342.48
                    },
                    "text": "Their data services write to MySQL and the object store; the UI updates."
                },
                {
                    "id": "p4.30",
                    "order": 30,
                    "type": "heading",
                    "bbox": {
                        "l": 630.96,
                        "t": 408.24,
                        "r": 682.32,
                        "b": 399.36
                    },
                    "text": "NET EFFECT",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.31",
                    "order": 31,
                    "type": "text",
                    "bbox": {
                        "l": 630.72,
                        "t": 395.04,
                        "r": 769.2,
                        "b": 382.8
                    },
                    "text": "Verdicts move, data doesn't"
                },
                {
                    "id": "p4.32",
                    "order": 32,
                    "type": "text",
                    "bbox": {
                        "l": 630.72,
                        "t": 376.8,
                        "r": 791.28,
                        "b": 352.56
                    },
                    "text": "They hold every byte of customer data; we hold every line of analysis IP."
                },
                {
                    "id": "p4.33",
                    "order": 33,
                    "type": "heading",
                    "bbox": {
                        "l": 43.68,
                        "t": 291.36,
                        "r": 146.16,
                        "b": 275.76
                    },
                    "text": "Why this holds up",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.34",
                    "order": 34,
                    "type": "list",
                    "bbox": {
                        "l": 42.24,
                        "t": 267.6,
                        "r": 396.96,
                        "b": 143.52
                    },
                    "text": "",
                    "attrs": {
                        "item_count": 5
                    },
                    "children": [
                        {
                            "id": "p4.34.1",
                            "order": 35,
                            "type": "list_item",
                            "bbox": {
                                "l": 42.24,
                                "t": 267.6,
                                "r": 396.96,
                                "b": 254.4
                            },
                            "text": "No shared secrets — the link authenticates with mTLS certificates, not API keys."
                        },
                        {
                            "id": "p4.34.2",
                            "order": 36,
                            "type": "list_item",
                            "bbox": {
                                "l": 42.96,
                                "t": 246.72,
                                "r": 375.6,
                                "b": 219.12
                            },
                            "text": "No API exposure — our analysis services answer no HTTP; the queue is the only door."
                        },
                        {
                            "id": "p4.34.3",
                            "order": 37,
                            "type": "list_item",
                            "bbox": {
                                "l": 42.96,
                                "t": 211.44,
                                "r": 360.24,
                                "b": 198.24
                            },
                            "text": "Outage resilient — if the link drops, both queues buffer until it recovers."
                        },
                        {
                            "id": "p4.34.4",
                            "order": 38,
                            "type": "list_item",
                            "bbox": {
                                "l": 42.96,
                                "t": 191.52,
                                "r": 379.92,
                                "b": 178.32
                            },
                            "text": "Independent audit — both brokers log federation, reviewable on either side."
                        },
                        {
                            "id": "p4.34.5",
                            "order": 39,
                            "type": "list_item",
                            "bbox": {
                                "l": 43.2,
                                "t": 170.16,
                                "r": 383.04,
                                "b": 143.52
                            },
                            "text": "One exception — ai-facade calls OpenAI and may include page content; their DPO decides."
                        }
                    ]
                },
                {
                    "id": "p4.35",
                    "order": 40,
                    "type": "heading",
                    "bbox": {
                        "l": 440.16,
                        "t": 291.12,
                        "r": 513.12,
                        "b": 276.24
                    },
                    "text": "If they leave",
                    "attrs": {
                        "block_label": "paragraph_title"
                    }
                },
                {
                    "id": "p4.36",
                    "order": 41,
                    "type": "list",
                    "bbox": {
                        "l": 438.96,
                        "t": 267.6,
                        "r": 789.84,
                        "b": 163.68
                    },
                    "text": "",
                    "attrs": {
                        "item_count": 4
                    },
                    "children": [
                        {
                            "id": "p4.36.1",
                            "order": 42,
                            "type": "list_item",
                            "bbox": {
                                "l": 438.96,
                                "t": 267.6,
                                "r": 755.52,
                                "b": 240.48
                            },
                            "text": "They export findings, evidence and remediation tracking from their own data services."
                        },
                        {
                            "id": "p4.36.2",
                            "order": 43,
                            "type": "list_item",
                            "bbox": {
                                "l": 439.2,
                                "t": 232.8,
                                "r": 765.36,
                                "b": 219.12
                            },
                            "text": "We stop publishing to their queue and the private link is decommissioned."
                        },
                        {
                            "id": "p4.36.3",
                            "order": 44,
                            "type": "list_item",
                            "bbox": {
                                "l": 439.44,
                                "t": 211.44,
                                "r": 752.16,
                                "b": 185.28
                            },
                            "text": "They keep every finding, screenshot, document and account – no data escrow needed."
                        },
                        {
                            "id": "p4.36.4",
                            "order": 45,
                            "type": "list_item",
                            "bbox": {
                                "l": 439.2,
                                "t": 177.36,
                                "r": 789.84,
                                "b": 163.68
                            },
                            "text": "We retain the full analysis IP; no code was ever disclosed, so none is recovered."
                        }
                    ]
                },
                {
                    "id": "p4.37",
                    "order": 46,
                    "type": "footer",
                    "bbox": {
                        "l": 29.52,
                        "t": 36,
                        "r": 262.8,
                        "b": 27.36
                    },
                    "text": "SPLIT DEPLOYMENT · FRANCE · ARCHITECTURE TEAM",
                    "attrs": {
                        "block_label": "footer"
                    }
                },
                {
                    "id": "p4.38",
                    "order": 47,
                    "type": "footer",
                    "bbox": {
                        "l": 783.12,
                        "t": 36.24,
                        "r": 812.16,
                        "b": 26.4
                    },
                    "text": "4 / 4",
                    "attrs": {
                        "block_label": "number"
                    }
                }
            ],
            "ai_vision": {
                "model": "claude-opus-5",
                "confidence": 78,
                "added": 0,
                "retyped": 3
            }
        }
    ]
}