{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "megascenes-fantasy-map",
  "version": "1.0.1",
  "description": "Draw an illustrated map of a world you invent, with kingdoms, coasts, mountains and rivers, and your place names on it.",
  "author": {
    "name": "MegaScenes",
    "email": "support@megascenes.com",
    "url": "https://megascenes.com"
  },
  "homepage": "https://megascenes.com",
  "license": "MIT",
  "keywords": [
    "fantasy map",
    "fantasy map generator",
    "world map maker",
    "tabletop map",
    "worldbuilding",
    "rpg map"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Fantasy Maps",
        "shortDescription": "Maps of worlds you invent",
        "longDescription": "Describe your world: the kingdoms, the coasts, the mountains, forests and rivers, and the names of the places. Pick the look, an old parchment map, a colored atlas or an ink drawing, and you get an illustrated map of your world.\n\nChatGPT tells you what the map needs and makes it in your MegaScenes account when you ask. The map opens in the chat and stays in your library.\n\nFor tabletop games, novels, campaigns and worldbuilding.\n\nLimitations: original worlds only, not maps of existing books, films or games. Place names are passed to the model as written and the lettering is drawn by the model, so check it in the result. Making a file needs a signed-in MegaScenes account and runs in it; nothing is made until you confirm. Not for sexual or adult content or for real people's likeness. Files are made by generative models and saved in your MegaScenes library.",
        "developerName": "MegaScenes",
        "category": "Creativity",
        "capabilities": [
          "Draw a map of a world you describe",
          "Pick the style, from parchment to atlas",
          "Return the map in the chat"
        ],
        "websiteURL": "https://megascenes.com",
        "supportURL": "https://megascenes.com/support",
        "privacyPolicyURL": "https://megascenes.com/legal/privacy",
        "termsOfServiceURL": "https://megascenes.com/legal/terms",
        "defaultPrompt": [
          "Draw a parchment map of an island kingdom called Varn",
          "Make a fantasy map with three kingdoms and a desert in the south",
          "Create an ink map of a mountain realm for my campaign"
        ],
        "composerIcon": "./assets/icon.png",
        "logo": "./assets/icon.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Pick a model",
              "prompt": "Which models can draw a fantasy map here?",
              "tools_triggered": "list_fantasy_map_models",
              "expected_behavior": "The fantasy map models with their settings. Nothing is created."
            },
            {
              "description": "Check before drawing",
              "prompt": "Draw a parchment map of an island kingdom called Varn. Tell me what it needs, but don't create it yet.",
              "tools_triggered": "estimate_fantasy_map_cost",
              "expected_behavior": "What one map with the default model needs from the account. Nothing is created."
            },
            {
              "description": "Place names",
              "prompt": "Which model is best for readable place names on a map?",
              "tools_triggered": "list_fantasy_map_models",
              "expected_behavior": "The models with their settings, to choose one for lettering. Nothing is created."
            },
            {
              "description": "Make it after an explicit request",
              "prompt": "Draw a parchment map of an island kingdom called Varn with three cities. Create it now.",
              "tools_triggered": "estimate_fantasy_map_cost, create_fantasy_map, get_fantasy_map",
              "expected_behavior": "ChatGPT says what the run needs and, once the person confirms, one job starts in the signed-in MegaScenes account; the status tool reports progress and, when it succeeds, returns the file link, which the result view shows."
            },
            {
              "description": "Account",
              "prompt": "Which MegaScenes account am I signed in with?",
              "tools_triggered": "get_account",
              "expected_behavior": "The email and plan of the signed-in account. Nothing is created."
            }
          ],
          "negative": [
            {
              "description": "Physical printing",
              "prompt": "Print my fantasy map on 50 mugs and ship them to my office in Berlin."
            },
            {
              "description": "Sending it",
              "prompt": "Email my fantasy map to my client at sam@example.com."
            },
            {
              "description": "Unrelated question",
              "prompt": "What is the capital of Portugal?"
            }
          ]
        },
        "commerce": false,
        "commerce_description": "The plugin does not sell products or process payments. Making a file runs in the user's existing MegaScenes account; no purchase happens in the conversation.",
        "demo_recording_url": "https://megascenes.com/media/demos/fantasy-map.mp4"
      },
      "publication": {
        "release_notes": "First release: make the file in the connected MegaScenes account and get it back in the conversation."
      },
      "apps": "./.app.json"
    }
  }
}
