You are an expert Python cartography and visualization assistant. Goal: I already have a fantasy map called “The Convergence Archipelago” (with locations like Port Veridian, Silver Outpost, The Convergence Spire, Kraken’s Lair, etc.). I want you to write a Python script that programmatically generates a **2D fantasy nautical map image** of this setting. The visual style should: - Look like a parchment-style pirate map similar in composition and vibe to “THE GRAND ARCHIPELAGO OF THE BLACK REACH”. - Have a large central sea with many islands, a parchment background, decorative compass roses, patrol / trade routes, and faction territories. Technical requirements: - Use only standard Python + widely available pip libraries (for example: Pillow (PIL), matplotlib, and optionally numpy). Do NOT use browser-only or proprietary APIs. - The script must be **fully self-contained**: when I run it, it should produce a PNG map image file (e.g. `convergence_map.png`) without needing manual drawing from me. - Structure the code cleanly, with: - A data section defining locations, factions, and routes. - Functions to draw background, islands, labels, icons, routes, and overlays. - A `main()` that calls everything and saves the final image. Assume an abstract coordinate system, e.g. x,y in a 0–1000 range, and position everything relative to that. I don’t need perfect geographic accuracy; I need recognizably separated regions (north, southwest, etc.) and a layout similar to my current Convergence map. Data model and content to include: 1. Factions (with colors) - "Reef Lords" – red - "Silver Navy" – silver/gray - "The Displaced" – purple - "The Harrowed" – dark blue / indigo - "Free Ports" – green 2. Main regions and key locations (give each sensible coordinates and island sizes): - Central hub: - Port Veridian (Free Ports, major island) - Vault of Tides (Free Ports, near Port Veridian) - Salt Temple - The Salt-Circle (reef area label) - Gallows Docks (Reef Lords) - Drowned Anchor (Free Ports) - Dragon Turtle (reef / sea monster marker) - The Bone Cathedral (Harrowed) - Northern cluster: - Singing Reefs - Silver Outpost (Silver Navy, with small “Adm. Von Strangle” label) - Northeastern cluster: - Pearl Banks - Sahuagin Temple City - Shattered Reefs (plus a hazardous path line through it) - Storm Lanes (isolated island) - Southeastern cluster: - The Flotilla (Free Ports, circular island cluster) - Southwestern cluster: - The Sargasso Maze - Bone Forest - Arch - Label near here: “The Shifting (near the Displaced)” - Western / Northwestern: - Harrowed Hidden Temple - The Hollow (Siphon / Harrowed) – region label - The Convergence Spire (large, central feature of that region) - Storm Giant Citadel (further north/east, lofty / special icon) - A nearby “celestial body” marker (e.g. a small circle with grid lines) - Open ocean: - Kraken’s Lair (bright, dangerous marker) - A few red “X” marks at various coordinates to indicate wrecks/treasure. - A few faint circular “aura” or “ping” overlays to show magical anomalies. 3. Travel routes: - Dashed or semi-transparent lines connecting: - The Convergence Spire - Silver Outpost - Port Veridian - The Flotilla 4. Legend and UI elements: - A title at the top or bottom: “THE CONVERGENCE ARCHIPELAGO” - Subtitle: “Year of the Convergence – Pirate Campaign” - A scale bar (e.g. 0–400 miles) in a corner. - A legend box labeled “Factions” listing the five factions and their colors. - At least one ornate compass rose (stylized, not photorealistic). Art style constraints: - Use a parchment-like background: either generate noise + tint, or fill with a tan rectangle and overlay subtle noise/texture using Pillow. - Islands: - Represent islands as irregular polygons or blobs, not just circles. - Outline them in a darker color, fill with light tan/green, and optionally a thin turquoise coastal glow (for reefs). - Faction territories: - For areas like Harrowed Territory, Reef Lords Territory, etc., draw soft, low-opacity colored blobs or outlines behind the islands to indicate influence. - Text: - Use a readable, slightly decorative font if available; otherwise default but in an old-map color (dark brown or dark gray). - Curve or angle some labels slightly if practical; if too complex, simple straight text is fine. - Icons: - Approximate icons using simple shapes (triangles for spires/temples, skull-like circles, ships as small triangles or polygons, etc.). I don’t need detailed art, just recognizable silhouettes. What I want from you: 1. A complete Python script that: - Imports the required libraries at the top. - Defines data structures for factions, locations, and routes (e.g. dictionaries or dataclasses). - Contains well-named functions like: - `create_canvas(width, height)` - `draw_parchment_background(...)` - `draw_island(...)` - `draw_faction_regions(...)` - `draw_routes(...)` - `draw_compass_rose(...)` - `draw_scale_bar(...)` - `draw_legend(...)` - Calls these in `main()` and saves `convergence_map.png`. 2. Reasonable, hard-coded coordinates for every major location, so when I run the script once I get a recognizable map without needing to tweak values. 3. Inline comments explaining the more complex drawing logic so I can later adjust positions, shapes, and colors myself. Assume I’ll run this with Python 3.11+. Please output only the Python code, inside one code block, ready to copy-paste and run.