The Map Editor backend domain handles the persistence of map asset images on the local filesystem. The browser cannot store arbitrarily large image files in OPFS with the same efficiency as disk, so map images are handed off to the Java backend which saves them to theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Fixius50/WorlBuilding-Writting-App/llms.txt
Use this file to discover all available pages before exploring further.
maps_assets/ directory and returns a MapAsset metadata object that the frontend uses to reference and display the image. Supported workflows include uploading an image file directly, fetching an image from a remote URL, and creating a blank white PNG canvas ready for annotation in the map editor.
Base URL
POST /mapeditor/assets/{projectName}/upload
Upload a map image file for a project. The server saves the file to maps_assets/{projectName}_{fileName} and returns its metadata.
The name of the project this map asset belongs to.
A human-readable name for the map (e.g.
"World Map", "Northern Continent"). Used to generate the slug and stored as the asset’s display name.The image file to upload. Common formats: PNG, JPEG, WebP.
200 OK — MapAsset JSON object.
Auto-generated numeric identifier for the asset.
The human-readable map name as provided.
URL-safe slug derived from the name.
The filename used on disk (within
maps_assets/).The full relative path on the server:
maps_assets/{projectName}_{fileName}.File size in bytes.
Image dimensions as a string, e.g.
"4096x2048".Number of layers. Always
1 for uploaded images; may differ for layered assets.GET /mapeditor/assets/{projectName}/download/{fileName}
Download a previously uploaded map asset file as a binary stream.
The project the asset belongs to.
The
fileName field as returned by the upload endpoints. The server resolves the full path as maps_assets/{projectName}_{fileName}.200 OK — application/octet-stream — the raw image file.
POST /mapeditor/assets/{projectName}/upload-url
Fetch a map image from a remote URL and save it to the server’s maps_assets/ directory. Useful for importing publicly-accessible map images without manually downloading them first.
The project this map asset belongs to.
Human-readable name for the map asset.
The fully-qualified URL of the image to fetch (must be reachable from the machine running the Java backend).
200 OK — MapAsset JSON object (same shape as the file upload response).
POST /mapeditor/assets/{projectName}/blank
Create a blank white canvas PNG and save it as a map asset. The generated image is a solid white rectangle suitable as a starting canvas for hand-drawing annotations in the map editor.
The project this blank canvas belongs to.
Human-readable name for the blank canvas map.
200 OK — MapAsset JSON object.
File Naming Convention
All assets are stored in the
maps_assets/ directory relative to the working directory of the running JAR. The naming convention is {projectName}_{fileName}, which ensures assets from different projects never collide. The ZIP export endpoint (GET /db/export/{projectName}) automatically includes all assets matching the {projectName}_ prefix.Error Responses
| Status | Condition |
|---|---|
400 Bad Request | Empty file, missing name param, or empty url |
404 Not Found | Asset file not found on download |
500 Internal Server Error | Disk I/O failure or unreachable URL |