{"id":29610,"plugin_id":"plugins_6a690ee33ddc819185a57c208dcf0711","kind":"detail","collection_source":"plugin_api","comparison_source":null,"observed_at":"2026-10-09T00:04:57.861Z","digest":"b12be3a2d84c1fac4971c409ac441f704b612455927f8bc8afa697b2849c2a00","against":16738,"payload":{"canonical_app_id":null,"connector_id":null,"created_at":"2026-07-28T20:38:47.715181Z","discoverability":"LISTED","id":"plugins_6a690ee33ddc819185a57c208dcf0711","is_template":false,"name":"ai-dm-4-engine","release":{"app_ids":[],"app_manifest":null,"app_templates":[],"description":"Manifest-bound AI-DM 4 text-campaign adapter and transactional runtime","display_name":"AI-DM 4 Engine","id":"pluginrel_be2bf2cee6148191acac7a04ddddf71b","interface":{"brand_color":"#C72A1C","capabilities":["Interactive","Write"],"category":"Entertainment","composer_icon_dark_url":null,"composer_icon_url":"https://files.openai.com/content?id=file_00000000abf48243820eb06b01494c1c","default_prompt":"Validate this AI-DM Campaign and show /status.","default_prompts":["Validate this AI-DM Campaign and show /status.","Resume this Campaign without inventing player intent.","Create a checkpoint for this Campaign."],"developer_name":"Simen Midtun Hansen","logo_url":"https://files.openai.com/content?id=file_00000000bfac82438b1600dfbd7c2c92","logo_url_dark":null,"long_description":"Validates, reads, transacts, checkpoints, and exports campaign-agnostic AI-DM 4 Campaign packages without embedding mutable campaign canon.","plugin_category_id":"entertainment","privacy_policy_url":null,"screenshot_urls":[],"short_description":"Run text campaigns.","terms_of_service_url":null,"website_url":null},"keywords":["ai-dm","text-rpg","campaign","roleplaying"],"mcp_servers":[],"onboarding_skill_name":null,"requires_local_executor":false,"skills":[{"description":"Run, validate, inspect, transact, checkpoint, or export campaign-agnostic AI-DM 4 text campaigns bound through a Contract-1.1 CAMPAIGN_MANIFEST.json. Use for AI-DM gameplay and slash commands when the user supplies or explicitly selects a Campaign directory or ZIP, and for synthetic campaign/package validation. Never use chat memory as campaign storage or infer authority from filenames.","interface":{"brand_color":null,"default_prompt":"Use $run-ai-dm-4-engine to validate and run the explicitly bound Campaign package.","display_name":"AI-DM 4 Engine","icon_large_url":null,"icon_small_url":null,"iconography":"code","short_description":"Run manifest-bound persistent text campaigns"},"name":"run-ai-dm-4-engine","plugin_release_skill_id":"pluginrsk_6a690ee587448191b817a27c9c25bc1a"}],"version":"0.3.1"},"scope":"GLOBAL","share_url":"https://chatgpt.com/plugins/plugins_6a690ee33ddc819185a57c208dcf0711?open_in_app","status":"ENABLED"},"changes":[{"path":"/discoverability","type":"changed","before":"UNLISTED","after":"LISTED"},{"path":"/share_url","type":"changed","before":null,"after":"https://chatgpt.com/plugins/plugins_6a690ee33ddc819185a57c208dcf0711?open_in_app"}],"summary":"Fields changed: 2. /discoverability, /share_url.","summary_kind":"deterministic","summary_metadata":{}}