out_dir/normalized/ plus qc_summary.json at out_dir root.
Text wrapping is implemented via SVG <tspan> (no font scaling / no sideways stretching).
fp_images_index.csv.gz is the hub keyed by image_uid (FP:img/<image_id>).items.csv.gz (Items) joins to Images via ref_uid (=image_uid).fp_instances.csv.gz joins to images via image_uid and to categories via fp_cat_id.fp_attr_sparse.csv.gz joins to images via image_uid and to attributes via fp_attr_id.fp_image_categories.csv.gz is a per-instance category log; fp_image_categories_agg.csv.gz aggregates it.fp_geometry.csv.gz is derived from non-part instances (union/primary bbox) per image_uid.manifest.csv/jsonl, report.md, qc_summary.json are run-level artifacts (conceptual edges).