What this MCP does
Manages tabletop RPG campaigns, sessions, guilds, player relationships, forums and structured campaign lore.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1, 'description': 'Argo user ID of the counterparty.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'senderId', 'receiverId', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'type': 'string'}, 'senderId': {'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'receiverId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guildId', 'campaignId'], 'properties': {'guildId': {'type': 'string', 'minLength': 1, 'description': 'Guild ID.'}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'Campaign ID to add to the guild.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'guildId', 'campaignId'], 'properties': {'guildId': {'type': 'string'}, 'success': {'type': 'boolean', 'const': True}, 'campaignId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1, 'description': 'Argo user ID of the user to promote to co-GM. Must be an existing user.'}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'Campaign ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'gameMasterId', 'campaignName'], 'properties': {'id': {'type': 'string'}, 'ruleSystem': {'type': ['string', 'null']}, 'campaignName': {'type': 'string'}, 'gameMasterId': {'type': 'string'}, 'gameSystemSlug': {'type': ['string', 'null']}, 'coGameMasterIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'campaignDescription': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guildId', 'title', 'startDateTime'], 'properties': {'title': {'type': 'string', 'minLength': 1, 'description': 'Event title.'}, 'guildId': {'type': 'string', 'minLength': 1, 'description': 'Guild ID.'}, 'description': {'type': 'string', 'description': 'Optional event description.'}, 'endDateTime': {'type': 'string', 'description': 'Event end, ISO-8601 â\x80\x94 optional.'}, 'startDateTime': {'type': 'string', 'description': 'Event start, ISO-8601 (e.g. 2026-06-12T19:00:00).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1, 'description': 'Argo user ID of the counterparty.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'senderId', 'receiverId', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'type': 'string'}, 'senderId': {'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'receiverId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'markdown'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Title of the new entry.'}, 'markdown': {'type': 'string', 'minLength': 1, 'description': 'Body content as Markdown. Mentions: @[label](mnemon:<entryId>). Images:  â\x80\x94 upload the asset first.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'relatedEntryIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignName', 'description', 'ruleSystem'], 'properties': {'ruleSystem': {'type': 'string', 'minLength': 1, 'description': "Rule system the campaign uses. E.g. 'Dungeons & Dragons 5e', 'Pathfinder 2e', 'Forbidden Lands'. Free-form; the WebAPI derives the slug from this."}, 'description': {'type': 'string', 'minLength': 1, 'description': "Short description of the campaign's setting, tone, and premise."}, 'campaignName': {'type': 'string', 'minLength': 1, 'description': 'Display name of the campaign.'}, 'gameSystemSlug': {'type': 'string', 'description': "Optional explicit slug for the public URL (e.g. 'dnd5e'). If omitted, the server derives one from ruleSystem."}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'gameMasterId', 'campaignName'], 'properties': {'id': {'type': 'string'}, 'ruleSystem': {'type': ['string', 'null']}, 'accessLevel': {'type': ['string', 'null']}, 'campaignName': {'type': 'string'}, 'gameMasterId': {'type': 'string'}, 'gameSystemSlug': {'type': ['string', 'null']}, 'coGameMasterIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'campaignDescription': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'markdown'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Title of the new entry.'}, 'markdown': {'type': 'string', 'minLength': 1, 'description': 'Body content as Markdown. Mentions: @[label](mnemon:<entryId>). Images:  â\x80\x94 upload the asset first.'}, 'customType': {'type': 'string', 'description': 'Optional descriptive subtype label.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'markdown'], 'properties': {'date': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Title of the new entry.'}, 'outcome': {'type': 'string'}, 'markdown': {'type': 'string', 'minLength': 1, 'description': 'Body content as Markdown. Mentions: @[label](mnemon:<entryId>). Images:  â\x80\x94 upload the asset first.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'sessionNumber': {'type': 'integer'}, 'consequenceEntryIds': {'type': 'array', 'items': {'type': 'string'}}, 'involvedNpcEntryIds': {'type': 'array', 'items': {'type': 'string'}}, 'involvedCharacterIds': {'type': 'array', 'items': {'type': 'string'}}, 'involvedLocationEntryIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'markdown'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Title of the new entry.'}, 'levelId': {'type': 'string', 'description': 'Unreal Engine level reference.'}, 'markdown': {'type': 'string', 'minLength': 1, 'description': 'Body content as Markdown. Mentions: @[label](mnemon:<entryId>). Images:  â\x80\x94 upload the asset first.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'markdown'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Title of the new entry.'}, 'markdown': {'type': 'string', 'minLength': 1, 'description': 'Body content as Markdown. Mentions: @[label](mnemon:<entryId>). Images:  â\x80\x94 upload the asset first.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'relatedEntryIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'sourceEntryId', 'targetEntryId', 'label'], 'properties': {'color': {'type': 'string'}, 'label': {'enum': ['MEMBER', 'ALLY', 'ENEMY', 'RIVAL', 'PARENT_OF', 'CONTAINS', 'LOCATED_IN', 'HAS_SUBQUEST', 'QUEST_GIVER', 'QUEST_LOCATION', 'QUEST_RELATED_NPC', 'QUEST_RELATED_LOCATION', 'SESSION_ATTENDEE_CHARACTER', 'SESSION_ATTENDEE_NPC', 'SESSION_FEATURED_QUEST', 'SESSION_FEATURED_LOCATION'], 'type': 'string'}, 'direction': {'type': 'string', 'description': "Deprecated: leave unset. The label alone decides the edge's shape â\x80\x94 its kind and how it reads belong to the word (Mnemon D29/D33), and the server refuses a contradiction."}, 'campaignId': {'type': 'string', 'minLength': 1}, 'sourceEntryId': {'type': 'string', 'minLength': 1}, 'targetEntryId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['relationshipId', 'sourceId', 'targetId', 'label'], 'properties': {'kind': {'type': 'string'}, 'color': {'type': 'string'}, 'label': {'type': 'string'}, 'sourceId': {'type': 'string'}, 'symmetry': {'type': 'string'}, 'targetId': {'type': 'string'}, 'direction': {'type': 'string'}, 'relationshipId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'markdown', 'npcType'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Title of the new entry.'}, 'npcType': {'enum': ['FACTION', 'INDIVIDUAL'], 'type': 'string', 'description': 'Required: FACTION (organization) or INDIVIDUAL (person).'}, 'sheetId': {'type': 'string'}, 'markdown': {'type': 'string', 'minLength': 1, 'description': 'Body content as Markdown. Mentions: @[label](mnemon:<entryId>). Images:  â\x80\x94 upload the asset first.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'relationshipIds': {'type': 'array', 'items': {'type': 'string'}}, 'memberNpcEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'FACTION only: members of this faction (NPC entryIds or titles).'}, 'affiliationEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'INDIVIDUAL only: factions this person belongs to.'}, 'primaryLocationEntryId': {'type': 'string', 'description': 'Home location â\x80\x94 entryId or exact title.'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'markdown'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Title of the new entry.'}, 'partyId': {'type': 'string', 'description': 'CampaignParty id (NOT a mnemon entryId).'}, 'markdown': {'type': 'string', 'minLength': 1, 'description': 'Body content as Markdown. Mentions: @[label](mnemon:<entryId>). Images:  â\x80\x94 upload the asset first.'}, 'playerKind': {'enum': ['PARTY', 'CHARACTER', 'NOTES'], 'type': 'string'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'characterId': {'type': 'string', 'description': 'SessionCharacter id (required for playerKind=CHARACTER).'}, 'parentEntryId': {'type': 'string', 'description': 'For playerKind=CHARACTER: entryId of the parent PARTY-kind PlayerMnemon.'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'hook': {'type': 'string', 'description': 'The one line players see under the title in the quest log. An empty string clears it.'}, 'kind': {'enum': ['Main', 'Side', 'Personal'], 'type': 'string', 'description': 'Main | Side | Personal. Reads as Side when unset.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Free-text bullet notes for the step.'}, 'title': {'type': 'string', 'description': "Short label for the step, e.g. 'Talk to the innkeeper'."}, 'status': {'enum': ['Hidden', 'Available', 'Active', 'Completed', 'Failed', 'TurnedIn', 'Abandoned', 'Expired', 'OnHold'], 'type': 'string', 'description': "Defaults to 'Available' when omitted. Unknown values are coerced server-side."}, 'stepId': {'type': 'string', 'description': 'Optional. Server generates a fresh UUID when blank. Provide an existing stepId to reuse linkedStepIds.'}, 'description': {'type': 'string'}, 'targetNpcEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'NPCs involved in this step (entryIds or titles).'}, 'targetLocationEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Locations involved in this step.'}}, 'additionalProperties': False}, 'description': "Retired: the old quest board's steps, for quests the migration has not converted. Send objectives."}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Title of the new entry.'}, 'status': {'enum': ['Available', 'Active', 'Completed', 'Failed'], 'type': 'string', 'description': 'Available | Active | Completed | Failed. Reads as Available when unset.'}, 'giverId': {'type': 'string', 'description': "Who gives the quest: an NPC's entryId or exact title (its Quest giver link). On update an empty string removes it."}, 'gmNotes': {'type': 'string', 'description': 'GM-only notes, in Markdown. Players never see them.'}, 'rewards': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': "The chip to rewrite, as get_mnemon's quest.rewards[].id names it. Omit for a new chip."}, 'kind': {'enum': ['currency', 'xp', 'item', 'other'], 'type': 'string', 'description': 'currency | xp | item | other. Makes this a reward chip â\x80\x94 send it on every reward.'}, 'unit': {'type': 'string', 'description': "currency chips: the coin, as the campaign's setting names it (e.g. coin.gp), or free text such as 'gold'."}, 'label': {'type': 'string', 'description': "What the chip says: an item's name, a favour, a title."}, 'notes': {'type': 'string', 'description': 'Retired reward row: notes.'}, 'amount': {'type': 'number', 'description': 'How many: coins, experience points, a stack.'}, 'hidden': {'type': 'boolean', 'description': 'true hides the chip from players, false shows it; omitted keeps what it has (a new one is shown).'}, 'itemId': {'type': 'string', 'description': 'Retired reward row: a free-text item reference.'}, 'entryId': {'type': 'string', 'description': 'item chips: the mnemon entry it links to (entryId or exact title). Not with ruleEntryId.'}, 'unitLabel': {'type': 'string', 'description': "How the coin reads, e.g. 'Gold piece'."}, 'rewardType': {'type': 'string', 'description': 'Retired reward row, without kind: Gold | Item | XP | Reputation â\x80¦'}, 'ruleEntryId': {'type': 'string', 'description': 'item chips: the rules-library entry it links to. Not with entryId.'}, 'linkedStepIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Retired reward row: the stepIds or subquest entry ids that unlock it.'}}, 'additionalProperties': False}, 'description': 'The reward chips, each with its kind.'}, 'markdown': {'type': 'string', 'minLength': 1, 'description': "The quest's prose in Markdown: its Background when background is not given. Mentions: @[label](mnemon:<entryId>)."}, 'expiresAt': {'type': 'string', 'description': 'Retired quest board field (ISO-8601).'}, 'background': {'type': 'string', 'description': 'The Background section, in Markdown.'}, 'issuerText': {'type': 'string', 'description': 'Retired quest board field: write it into background.'}, 'locationId': {'type': 'string', 'description': "Where the quest is given or set: a Location's entryId or exact title. On update an empty string removes it."}, 'objectives': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string', 'description': "The objective to rewrite, as get_mnemon's quest.objectives[].id names it. Omit for a new objective."}, 'text': {'type': 'string', 'minLength': 1, 'description': 'The objective, one line of Markdown. Mentions: @[label](mnemon:<entryId>).'}, 'state': {'enum': ['open', 'done', 'failed'], 'type': 'string', 'description': 'open (the default), done or failed.'}, 'hidden': {'type': 'boolean', 'description': 'true hides it from players, false shows it; omitted keeps what it has (a new one is shown).'}, 'children': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string', 'description': "The objective to rewrite, as get_mnemon's quest.objectives[].id names it. Omit for a new objective."}, 'text': {'type': 'string', 'minLength': 1, 'description': 'The objective, one line of Markdown. Mentions: @[label](mnemon:<entryId>).'}, 'state': {'enum': ['open', 'done', 'failed'], 'type': 'string', 'description': 'open (the default), done or failed.'}, 'hidden': {'type': 'boolean', 'description': 'true hides it from players, false shows it; omitted keeps what it has (a new one is shown).'}, 'optional': {'type': 'boolean', 'description': "An optional objective does not count toward the quest's progress. Defaults to false."}}, 'additionalProperties': False}, 'description': 'Its sub-objectives, in order. Omitted keeps the ones it has; an empty list removes them.'}, 'optional': {'type': 'boolean', 'description': "An optional objective does not count toward the quest's progress. Defaults to false."}}, 'additionalProperties': False}, 'description': 'The objectives, in order.'}, 'repeatable': {'type': 'boolean', 'description': 'Retired quest board field.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'questStatus': {'type': 'string', 'description': 'Retired: send status.'}, 'parentQuestId': {'type': 'string', 'description': "The quest this one belongs to: a Quest's entryId or exact title. On update an empty string removes it."}, 'playersCanTick': {'type': 'boolean', 'description': 'Whether players may tick the objectives they can see. Off by default.'}, 'issuerNpcEntryId': {'type': 'string', 'description': 'Retired quest board field: send giverId.'}, 'subQuestEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': "This quest's subquests (entryIds or titles). Prefer parentQuestId on each subquest."}, 'relatedNpcEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'NPCs the quest involves (entryIds or titles).'}, 'relatedLocationEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Locations the quest involves (entryIds or titles).'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'title', 'startAt'], 'properties': {'endAt': {'type': 'string', 'description': 'Session end time as an ISO-8601 instant.'}, 'title': {'type': 'string', 'minLength': 1, 'description': "Session title (e.g. 'Session 12: The Dragon's Lair')."}, 'startAt': {'type': 'string', 'minLength': 1, 'description': "Session start time as an ISO-8601 instant (e.g. '2026-06-01T19:00:00Z')."}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'Campaign ID.'}, 'description': {'type': 'string', 'description': 'Optional session description / GM notes.'}, 'invitedUserIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'User IDs to invite (must be active campaign members).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'campaignId', 'title', 'startAt'], 'properties': {'id': {'type': 'string'}, 'endAt': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'guildId': {'type': ['string', 'null']}, 'startAt': {'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'campaignId': {'type': 'string'}, 'description': {'type': ['string', 'null']}, 'invitedUserIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'createdByUserId': {'type': ['string', 'null']}, 'invitedPartyIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'attendanceReplies': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'markdown'], 'properties': {'date': {'type': 'string'}, 'loot': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Items, treasure, or rewards acquired.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Title of the new entry.'}, 'combats': {'type': 'array', 'items': {'type': 'object', 'required': ['description'], 'properties': {'outcome': {'type': 'string', 'description': 'How it resolved, e.g. "party victorious, no casualties".'}, 'description': {'type': 'string', 'minLength': 1, 'description': 'Who fought whom and where, in one sentence.'}}, 'additionalProperties': False}, 'description': 'Combat encounters that took place this session.'}, 'markdown': {'type': 'string', 'minLength': 1, 'description': 'Body content as Markdown. Mentions: @[label](mnemon:<entryId>). Images:  â\x80\x94 upload the asset first.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'majorEvents': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Significant story beats, in chronological order.'}, 'openThreads': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Unresolved threads and cliffhangers as of session end.'}, 'previouslyOn': {'type': 'string', 'description': 'Where each player ended â\x80\x94 read aloud at the top of the next session.'}, 'npcsMentioned': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Name as referenced in the session, e.g. "Captain Mira".'}, 'role': {'type': 'string', 'description': 'Role played this session, e.g. "quest-giver", "rescued captive".'}}, 'additionalProperties': False}, 'description': 'NPCs that appeared or were referenced. This is descriptive only â\x80\x94 to link one to an existing NPC mnemon, call create_mnemon_relationship with SESSION_ATTENDEE_NPC.'}, 'partyEndState': {'type': 'object', 'description': 'Character display name -> short end-of-session status line.', 'additionalProperties': {'type': 'string'}}, 'sessionNumber': {'type': 'integer'}, 'partyDecisions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Meaningful choices that will shape future sessions.'}, 'suggestedTitle': {'type': 'string', 'description': 'Short evocative title for the session, like a TV episode title.'}, 'detailedSummary': {'type': 'string', 'description': 'Full narrative summary, 3-5 paragraphs.'}, 'oneSentenceSummary': {'type': 'string', 'description': 'Single-sentence TL;DR of what happened.'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'entryId'], 'properties': {'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry ID (hex) or exact title.'}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'Campaign ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'campaignId', 'entryId'], 'properties': {'entryId': {'type': 'string'}, 'success': {'type': 'boolean', 'const': True}, 'campaignId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'relationshipId'], 'properties': {'campaignId': {'type': 'string', 'minLength': 1}, 'relationshipId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'campaignId', 'relationshipId'], 'properties': {'success': {'type': 'boolean', 'const': True}, 'campaignId': {'type': 'string'}, 'relationshipId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['types', 'markdownFormat', 'blockOps', 'commonFields', 'relationshipLabels', 'relationships', 'idReferences', 'questBody'], 'properties': {'types': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'tool', 'description'], 'properties': {'tool': {'type': 'string'}, 'type': {'type': 'string'}, 'description': {'type': 'string'}}, 'additionalProperties': False}}, 'blockOps': {'type': 'object', 'required': ['tool', 'ops', 'atomicity', 'addressing'], 'properties': {'ops': {'type': 'array', 'items': {'type': 'object', 'required': ['op', 'required', 'optional', 'description'], 'properties': {'op': {'type': 'string'}, 'optional': {'type': 'array', 'items': {'type': 'string'}}, 'required': {'type': 'array', 'items': {'type': 'string'}}, 'description': {'type': 'string'}}, 'additionalProperties': False}}, 'tool': {'type': 'string'}, 'atomicity': {'type': 'string'}, 'addressing': {'type': 'string'}}, 'additionalProperties': False}, 'questBody': {'type': 'object', 'required': ['summary', 'header', 'objective', 'reward', 'prose', 'ticking', 'retired'], 'properties': {'prose': {'type': 'string'}, 'header': {'type': 'object', 'required': ['fields', 'statusValues', 'kindValues', 'notes'], 'properties': {'notes': {'type': 'string'}, 'fields': {'type': 'array', 'items': {'type': 'string'}}, 'kindValues': {'type': 'array', 'items': {'type': 'string'}}, 'statusValues': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'reward': {'type': 'object', 'required': ['fields', 'kindValues', 'notes'], 'properties': {'notes': {'type': 'string'}, 'fields': {'type': 'array', 'items': {'type': 'string'}}, 'kindValues': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'retired': {'type': 'string'}, 'summary': {'type': 'string'}, 'ticking': {'type': 'string'}, 'objective': {'type': 'object', 'required': ['fields', 'stateValues', 'notes'], 'properties': {'notes': {'type': 'string'}, 'fields': {'type': 'array', 'items': {'type': 'string'}}, 'stateValues': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'commonFields': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'description'], 'properties': {'name': {'type': 'string'}, 'type': {'type': 'string'}, 'values': {'type': 'array', 'items': {'type': 'string'}}, 'description': {'type': 'string'}}, 'additionalProperties': False}}, 'idReferences': {'type': 'string'}, 'relationships': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'label', 'target', 'description'], 'properties': {'label': {'type': 'string'}, 'source': {'type': 'string'}, 'target': {'type': 'string'}, 'description': {'type': 'string'}}, 'additionalProperties': False}}, 'markdownFormat': {'type': 'object', 'required': ['summary', 'mentions', 'images'], 'properties': {'images': {'type': 'string'}, 'summary': {'type': 'string'}, 'mentions': {'type': 'string'}}, 'additionalProperties': False}, 'relationshipLabels': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'raw', 'categoryId'], 'properties': {'raw': {'type': 'string', 'minLength': 1, 'description': 'Topic body in Markdown.'}, 'title': {'type': 'string', 'minLength': 1, 'description': 'Topic title. Keep it concise and descriptive.'}, 'categoryId': {'type': 'integer', 'description': 'Numeric category ID. Call forum_list_categories first if unsure.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'number'}, 'topic_id': {'type': ['number', 'null']}, 'username': {'type': ['string', 'null']}, 'topic_slug': {'type': ['string', 'null']}, 'post_number': {'type': ['number', 'null']}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic_list'], 'properties': {'topic_list': {'type': 'object', 'required': ['topics'], 'properties': {'topics': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'slug', 'posts_count', 'reply_count', 'created_at'], 'properties': {'id': {'type': 'number'}, 'slug': {'type': 'string'}, 'tags': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'title': {'type': 'string'}, 'excerpt': {'type': ['string', 'null']}, 'created_at': {'type': 'string'}, 'category_id': {'type': ['number', 'null']}, 'posts_count': {'type': 'number'}, 'reply_count': {'type': 'number'}, 'last_posted_at': {'type': ['string', 'null']}}, 'additionalProperties': True}}}, 'additionalProperties': True}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notifications'], 'properties': {'notifications': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'number'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}]}, 'read': {'type': ['boolean', 'null']}, 'topic_id': {'type': ['number', 'null']}, 'created_at': {'type': ['string', 'null']}, 'post_number': {'type': ['number', 'null']}, 'notification_type': {'type': ['number', 'null']}}, 'additionalProperties': True}}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic_list'], 'properties': {'topic_list': {'type': 'object', 'required': ['topics'], 'properties': {'topics': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'slug', 'posts_count', 'reply_count', 'created_at'], 'properties': {'id': {'type': 'number'}, 'slug': {'type': 'string'}, 'tags': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'title': {'type': 'string'}, 'excerpt': {'type': ['string', 'null']}, 'created_at': {'type': 'string'}, 'category_id': {'type': ['number', 'null']}, 'posts_count': {'type': 'number'}, 'reply_count': {'type': 'number'}, 'last_posted_at': {'type': ['string', 'null']}}, 'additionalProperties': True}}}, 'additionalProperties': True}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['category_list'], 'properties': {'category_list': {'type': 'object', 'required': ['categories'], 'properties': {'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'slug'], 'properties': {'id': {'type': 'number'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'description_text': {'type': ['string', 'null']}, 'subcategory_list': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/properties/category_list/properties/categories/items'}}, {'type': 'null'}]}}, 'additionalProperties': True}}}, 'additionalProperties': True}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'categoryId': {'type': 'integer', 'description': 'Numeric category ID. Provide this and/or categorySlug.'}, 'categorySlug': {'type': 'string', 'minLength': 1, 'description': "Category slug (e.g. 'bug-reports'). Provide this and/or categoryId."}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic_list'], 'properties': {'topic_list': {'type': 'object', 'required': ['topics'], 'properties': {'topics': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'slug', 'posts_count', 'reply_count', 'created_at'], 'properties': {'id': {'type': 'number'}, 'slug': {'type': 'string'}, 'tags': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'title': {'type': 'string'}, 'excerpt': {'type': ['string', 'null']}, 'created_at': {'type': 'string'}, 'category_id': {'type': ['number', 'null']}, 'posts_count': {'type': 'number'}, 'reply_count': {'type': 'number'}, 'last_posted_at': {'type': ['string', 'null']}}, 'additionalProperties': True}}}, 'additionalProperties': True}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topicId'], 'properties': {'topicId': {'type': 'integer', 'description': 'Numeric Discourse topic ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'slug', 'post_stream'], 'properties': {'id': {'type': 'number'}, 'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'post_stream': {'type': 'object', 'required': ['posts'], 'properties': {'posts': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'number'}, 'cooked': {'type': ['string', 'null']}, 'username': {'type': ['string', 'null']}, 'created_at': {'type': ['string', 'null']}, 'reply_count': {'type': ['number', 'null']}}, 'additionalProperties': True}}}, 'additionalProperties': True}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topicId', 'raw'], 'properties': {'raw': {'type': 'string', 'minLength': 1, 'description': 'Reply body in Markdown.'}, 'topicId': {'type': 'integer', 'description': 'Numeric Discourse topic ID to reply to.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'number'}, 'topic_id': {'type': ['number', 'null']}, 'username': {'type': ['string', 'null']}, 'topic_slug': {'type': ['string', 'null']}, 'post_number': {'type': ['number', 'null']}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['q'], 'properties': {'q': {'type': 'string', 'minLength': 1, 'description': 'Search query. Supports Discourse search syntax (e.g. #category, @username).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'posts': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'number'}, 'cooked': {'type': ['string', 'null']}, 'topic_id': {'type': ['number', 'null']}, 'username': {'type': ['string', 'null']}, 'created_at': {'type': ['string', 'null']}}, 'additionalProperties': True}}, {'type': 'null'}]}, 'topics': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'slug', 'posts_count', 'reply_count', 'created_at'], 'properties': {'id': {'type': 'number'}, 'slug': {'type': 'string'}, 'tags': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'title': {'type': 'string'}, 'excerpt': {'type': ['string', 'null']}, 'created_at': {'type': 'string'}, 'category_id': {'type': ['number', 'null']}, 'posts_count': {'type': 'number'}, 'reply_count': {'type': 'number'}, 'last_posted_at': {'type': ['string', 'null']}}, 'additionalProperties': True}}, {'type': 'null'}]}, 'grouped_search_result': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'minLength': 1, 'description': 'The ID of the campaign to retrieve.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'gameMasterId', 'campaignName'], 'properties': {'id': {'type': 'string'}, 'ruleSystem': {'type': ['string', 'null']}, 'campaignName': {'type': 'string'}, 'gameMasterId': {'type': 'string'}, 'gameSystemSlug': {'type': ['string', 'null']}, 'coGameMasterIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'campaignDescription': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guildId'], 'properties': {'guildId': {'type': 'string', 'minLength': 1, 'description': 'Guild ID to retrieve.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'ownerId'], 'properties': {'id': {'type': 'string'}, 'members': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['userId'], 'properties': {'role': {'type': ['string', 'null']}, 'status': {'type': ['string', 'null']}, 'userId': {'type': 'string'}, 'joinedAt': {'type': ['string', 'null']}, 'invitedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, {'type': 'null'}]}, 'ownerId': {'type': 'string'}, 'summary': {'anyOf': [{'type': 'object', 'properties': {'name': {'type': ['string', 'null']}, 'color': {'type': ['string', 'null']}, 'imageUrl': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'campaignIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'entryId'], 'properties': {'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry ID (hex) or exact title.'}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'Campaign ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['entryId', 'title', 'type', 'blocks'], 'properties': {'type': {'type': 'string'}, 'quest': {'type': 'object', 'required': ['status', 'kind', 'playersCanTick'], 'properties': {'kind': {'type': 'string', 'description': 'Main | Side | Personal.'}, 'status': {'type': 'string', 'description': 'Available | Active | Completed | Failed.'}, 'rewards': {'type': 'array', 'items': {'type': 'object', 'required': ['kind'], 'properties': {'id': {'type': 'string'}, 'kind': {'type': 'string', 'description': 'currency | xp | item | other.'}, 'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'amount': {'type': 'number'}, 'hidden': {'type': 'boolean'}, 'entryId': {'type': 'string'}, 'unitLabel': {'type': 'string'}, 'ruleEntryId': {'type': 'string'}}, 'additionalProperties': False}}, 'progress': {'type': 'object', 'required': ['done', 'total'], 'properties': {'done': {'type': 'number'}, 'total': {'type': 'number'}}, 'description': 'Required objectives done of those this user can see; optional and failed ones do not count.', 'additionalProperties': False}, 'objectives': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'state', 'optional', 'depth'], 'properties': {'id': {'type': 'string', 'description': 'Name it in set_quest_objective_state or update_quest_mnemons.'}, 'text': {'type': 'string'}, 'depth': {'type': 'number', 'description': '0 for a top-level objective.'}, 'state': {'type': 'string', 'description': 'open | done | failed.'}, 'hidden': {'type': 'boolean', 'description': 'GM reads only: true when players cannot see it.'}, 'optional': {'type': 'boolean'}, 'parentId': {'type': 'string'}}, 'additionalProperties': False}}, 'rewardTotals': {'type': 'object', 'required': ['currency'], 'properties': {'xp': {'type': ['number', 'null']}, 'currency': {'type': 'array', 'items': {'type': 'object', 'properties': {'unit': {'type': 'string'}, 'amount': {'type': 'number'}, 'unitLabel': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'playersCanTick': {'type': 'boolean'}}, 'description': 'Quests only: status, kind, objectives, reward chips and progress as this user may see them.', 'additionalProperties': False}, 'title': {'type': 'string'}, 'blocks': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'type'], 'properties': {'id': {'type': 'string'}, 'text': {'type': 'string'}, 'type': {'type': 'string'}, 'assetId': {'type': 'string'}, 'caption': {'type': 'string'}, 'checked': {'type': 'boolean'}, 'language': {'type': 'string'}, 'mimeType': {'type': 'string'}}, 'additionalProperties': False}}, 'entryId': {'type': 'string'}, 'typeProperties': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'sessionId'], 'properties': {'sessionId': {'type': 'string', 'minLength': 1, 'description': 'Session ID.'}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'Campaign ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'campaignId', 'title', 'startAt'], 'properties': {'id': {'type': 'string'}, 'endAt': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'guildId': {'type': ['string', 'null']}, 'startAt': {'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'campaignId': {'type': 'string'}, 'description': {'type': ['string', 'null']}, 'invitedUserIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'createdByUserId': {'type': ['string', 'null']}, 'invitedPartyIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'attendanceReplies': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guildId', 'userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1, 'description': 'Argo user ID to invite.'}, 'guildId': {'type': 'string', 'minLength': 1, 'description': 'Guild ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'guildId', 'userId'], 'properties': {'userId': {'type': 'string'}, 'guildId': {'type': 'string'}, 'success': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaigns', 'idMap'], 'properties': {'idMap': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'campaigns': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'gameMasterId', 'campaignName'], 'properties': {'id': {'type': 'string'}, 'ruleSystem': {'type': ['string', 'null']}, 'accessLevel': {'type': ['string', 'null']}, 'campaignName': {'type': 'string'}, 'gameMasterId': {'type': 'string'}, 'gameSystemSlug': {'type': ['string', 'null']}, 'coGameMasterIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'campaignDescription': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'minLength': 1, 'description': 'Campaign ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['userId'], 'properties': {'userId': {'type': 'string'}, 'displayName': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}, 'name': {'type': ['string', 'null']}, 'email': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guildId'], 'properties': {'guildId': {'type': 'string', 'minLength': 1, 'description': 'Guild ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['userId'], 'properties': {'role': {'type': ['string', 'null']}, 'status': {'type': ['string', 'null']}, 'userId': {'type': 'string'}, 'joinedAt': {'type': ['string', 'null']}, 'invitedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guilds', 'idMap'], 'properties': {'idMap': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'guilds': {'type': 'array', 'items': {'type': 'object', 'required': ['guildId', 'name', 'role', 'canAdmin', 'memberCount', 'campaignCount'], 'properties': {'name': {'type': 'string'}, 'role': {'type': 'string'}, 'guildId': {'type': 'string'}, 'canAdmin': {'type': 'boolean'}, 'memberCount': {'type': 'number'}, 'campaignCount': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'entryId'], 'properties': {'entryId': {'type': 'string', 'minLength': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['outgoing', 'incoming', 'linked'], 'properties': {'linked': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId', 'title', 'type', 'relationshipTypes'], 'properties': {'type': {'type': 'string'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'relationshipTypes': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'incoming': {'type': 'array', 'items': {'$ref': '#/properties/outgoing/items'}}, 'outgoing': {'type': 'array', 'items': {'type': 'object', 'required': ['relationshipId', 'sourceId', 'targetId', 'label'], 'properties': {'kind': {'type': 'string'}, 'color': {'type': 'string'}, 'label': {'type': 'string'}, 'sourceId': {'type': 'string'}, 'symmetry': {'type': 'string'}, 'targetId': {'type': 'string'}, 'direction': {'type': 'string'}, 'relationshipId': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'type': {'type': 'string', 'description': 'Mnemon type filter (NPC, Location, Quest, â\x80¦).'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum entries to return (default 100).'}, 'title': {'type': 'string', 'description': 'Case-insensitive substring filter on title.'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Entries to skip. Pass the nextOffset from the previous call to fetch the next page.'}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'ID of the campaign.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['entries', 'idMap', 'hasMore'], 'properties': {'idMap': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'entries': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId', 'title', 'type'], 'properties': {'type': {'type': 'string'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}}, 'additionalProperties': False}}, 'hasMore': {'type': 'boolean'}, 'nextOffset': {'type': 'number'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'senderId', 'receiverId', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'type': 'string'}, 'senderId': {'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'receiverId': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'senderId', 'receiverId', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'type': 'string'}, 'senderId': {'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'receiverId': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'year': {'type': 'integer', 'description': 'Calendar year. Defaults to current year.'}, 'month': {'type': 'integer', 'maximum': 12, 'minimum': 1, 'description': 'Calendar month (1-12). Defaults to current month.'}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'Campaign ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'campaignId', 'title', 'startAt'], 'properties': {'id': {'type': 'string'}, 'endAt': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'guildId': {'type': ['string', 'null']}, 'startAt': {'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'campaignId': {'type': 'string'}, 'description': {'type': ['string', 'null']}, 'invitedUserIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'createdByUserId': {'type': ['string', 'null']}, 'invitedPartyIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'attendanceReplies': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1, 'description': 'Argo user ID of the counterparty.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'senderId', 'receiverId', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'type': 'string'}, 'senderId': {'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'receiverId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1, 'description': 'User ID of the co-GM to remove.'}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'Campaign ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'campaignId', 'userId'], 'properties': {'userId': {'type': 'string'}, 'success': {'type': 'boolean', 'const': True}, 'campaignId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guildId', 'userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1, 'description': 'User ID of the member to remove.'}, 'guildId': {'type': 'string', 'minLength': 1, 'description': 'Guild ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'guildId', 'userId'], 'properties': {'userId': {'type': 'string'}, 'guildId': {'type': 'string'}, 'success': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'query'], 'properties': {'type': {'type': 'string', 'description': 'Mnemon type filter (NPC, Location, Quest, â\x80¦).'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Maximum results (default 20).'}, 'query': {'type': 'string', 'minLength': 2, 'description': 'Text to find (case-insensitive substring) in mnemon titles, tags, and body content.'}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'ID of the campaign.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results', 'idMap', 'hasMore'], 'properties': {'idMap': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'hasMore': {'type': 'boolean'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId', 'title', 'type', 'matchedIn', 'snippets'], 'properties': {'type': {'type': 'string'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'snippets': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string'}, 'blockId': {'type': 'string'}}, 'additionalProperties': False}}, 'matchedIn': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1, 'description': 'Argo user ID of the counterparty.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'senderId', 'receiverId', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'type': 'string'}, 'senderId': {'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'receiverId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guildId', 'userId', 'role'], 'properties': {'role': {'enum': ['Owner', 'Admin', 'Member'], 'type': 'string', 'description': 'New role.'}, 'userId': {'type': 'string', 'minLength': 1, 'description': 'Member to change.'}, 'guildId': {'type': 'string', 'minLength': 1, 'description': 'Guild ID.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'guildId', 'userId', 'role'], 'properties': {'role': {'enum': ['Owner', 'Admin', 'Member'], 'type': 'string'}, 'userId': {'type': 'string'}, 'guildId': {'type': 'string'}, 'success': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'entryId', 'objectiveId', 'state'], 'properties': {'state': {'enum': ['open', 'done', 'failed'], 'type': 'string', 'description': 'open, done or failed.'}, 'entryId': {'type': 'string', 'minLength': 1, 'description': 'The quest: entryId (hex) or exact title.'}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'Campaign ID.'}, 'objectiveId': {'type': 'string', 'minLength': 1, 'description': "The objective, as get_mnemon's quest.objectives[].id names it."}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['entryId', 'title', 'type', 'blocks'], 'properties': {'type': {'type': 'string'}, 'quest': {'type': 'object', 'required': ['status', 'kind', 'playersCanTick'], 'properties': {'kind': {'type': 'string', 'description': 'Main | Side | Personal.'}, 'status': {'type': 'string', 'description': 'Available | Active | Completed | Failed.'}, 'rewards': {'type': 'array', 'items': {'type': 'object', 'required': ['kind'], 'properties': {'id': {'type': 'string'}, 'kind': {'type': 'string', 'description': 'currency | xp | item | other.'}, 'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'amount': {'type': 'number'}, 'hidden': {'type': 'boolean'}, 'entryId': {'type': 'string'}, 'unitLabel': {'type': 'string'}, 'ruleEntryId': {'type': 'string'}}, 'additionalProperties': False}}, 'progress': {'type': 'object', 'required': ['done', 'total'], 'properties': {'done': {'type': 'number'}, 'total': {'type': 'number'}}, 'description': 'Required objectives done of those this user can see; optional and failed ones do not count.', 'additionalProperties': False}, 'objectives': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'state', 'optional', 'depth'], 'properties': {'id': {'type': 'string', 'description': 'Name it in set_quest_objective_state or update_quest_mnemons.'}, 'text': {'type': 'string'}, 'depth': {'type': 'number', 'description': '0 for a top-level objective.'}, 'state': {'type': 'string', 'description': 'open | done | failed.'}, 'hidden': {'type': 'boolean', 'description': 'GM reads only: true when players cannot see it.'}, 'optional': {'type': 'boolean'}, 'parentId': {'type': 'string'}}, 'additionalProperties': False}}, 'rewardTotals': {'type': 'object', 'required': ['currency'], 'properties': {'xp': {'type': ['number', 'null']}, 'currency': {'type': 'array', 'items': {'type': 'object', 'properties': {'unit': {'type': 'string'}, 'amount': {'type': 'number'}, 'unitLabel': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'playersCanTick': {'type': 'boolean'}}, 'description': 'Quests only: status, kind, objectives, reward chips and progress as this user may see them.', 'additionalProperties': False}, 'title': {'type': 'string'}, 'blocks': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'type'], 'properties': {'id': {'type': 'string'}, 'text': {'type': 'string'}, 'type': {'type': 'string'}, 'assetId': {'type': 'string'}, 'caption': {'type': 'string'}, 'checked': {'type': 'boolean'}, 'language': {'type': 'string'}, 'mimeType': {'type': 'string'}}, 'additionalProperties': False}}, 'entryId': {'type': 'string'}, 'typeProperties': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry id (hex) or exact title.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'relatedEntryIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'minLength': 1, 'description': 'ID of the campaign to update.'}, 'campaignName': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'New display name. Omit to leave unchanged.'}, 'campaignDescription': {'type': 'string', 'maxLength': 5000, 'description': 'New description (setting, tone, premise). Omit to leave unchanged. Pass an empty string to clear the existing description.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'gameMasterId', 'campaignName'], 'properties': {'id': {'type': 'string'}, 'ruleSystem': {'type': ['string', 'null']}, 'campaignName': {'type': 'string'}, 'gameMasterId': {'type': 'string'}, 'gameSystemSlug': {'type': ['string', 'null']}, 'coGameMasterIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'campaignDescription': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry id (hex) or exact title.'}, 'customType': {'type': 'string'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId'], 'properties': {'date': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry id (hex) or exact title.'}, 'outcome': {'type': 'string'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'sessionNumber': {'type': 'integer'}, 'consequenceEntryIds': {'type': 'array', 'items': {'type': 'string'}}, 'involvedNpcEntryIds': {'type': 'array', 'items': {'type': 'string'}}, 'involvedCharacterIds': {'type': 'array', 'items': {'type': 'string'}}, 'involvedLocationEntryIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry id (hex) or exact title.'}, 'levelId': {'type': 'string'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry id (hex) or exact title.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'relatedEntryIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId', 'ops'], 'properties': {'ops': {'type': 'array', 'items': {'type': 'object', 'required': ['op'], 'properties': {'op': {'enum': ['append', 'insertAfter', 'replace', 'remove'], 'type': 'string', 'description': 'The op to apply.'}, 'blockId': {'type': 'string', 'description': 'Required for replace and remove: a body node id from get_mnemon.'}, 'markdown': {'type': 'string', 'description': 'Markdown content for append / insertAfter / replace. May produce several body nodes. Mentions: @[label](mnemon:<entryId>); images: .'}, 'afterBlockId': {'type': 'string', 'description': 'Required for insertAfter: the body node id the new content follows.'}}, 'description': 'A single body mutation, keyed by node id. See describe_mnemon_types.blockOps.', 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1, 'description': 'Ordered ops to apply atomically per entry.'}, 'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry id (hex) or exact title.'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry id (hex) or exact title.'}, 'npcType': {'enum': ['FACTION', 'INDIVIDUAL'], 'type': 'string'}, 'sheetId': {'type': 'string'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'relationshipIds': {'type': 'array', 'items': {'type': 'string'}}, 'memberNpcEntryIds': {'type': 'array', 'items': {'type': 'string'}}, 'affiliationEntryIds': {'type': 'array', 'items': {'type': 'string'}}, 'primaryLocationEntryId': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry id (hex) or exact title.'}, 'partyId': {'type': 'string'}, 'playerKind': {'enum': ['PARTY', 'CHARACTER', 'NOTES'], 'type': 'string'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'characterId': {'type': 'string'}, 'parentEntryId': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId'], 'properties': {'hook': {'type': 'string', 'description': 'The one line players see under the title in the quest log. An empty string clears it.'}, 'kind': {'enum': ['Main', 'Side', 'Personal'], 'type': 'string', 'description': 'Main | Side | Personal. Reads as Side when unset.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Free-text bullet notes for the step.'}, 'title': {'type': 'string', 'description': "Short label for the step, e.g. 'Talk to the innkeeper'."}, 'status': {'enum': ['Hidden', 'Available', 'Active', 'Completed', 'Failed', 'TurnedIn', 'Abandoned', 'Expired', 'OnHold'], 'type': 'string', 'description': "Defaults to 'Available' when omitted. Unknown values are coerced server-side."}, 'stepId': {'type': 'string', 'description': 'Optional. Server generates a fresh UUID when blank. Provide an existing stepId to reuse linkedStepIds.'}, 'description': {'type': 'string'}, 'targetNpcEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'NPCs involved in this step (entryIds or titles).'}, 'targetLocationEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Locations involved in this step.'}}, 'additionalProperties': False}, 'description': "Retired: the old quest board's steps, for quests the migration has not converted. Send objectives."}, 'title': {'type': 'string'}, 'status': {'enum': ['Available', 'Active', 'Completed', 'Failed'], 'type': 'string', 'description': 'Available | Active | Completed | Failed. Reads as Available when unset.'}, 'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry id (hex) or exact title.'}, 'giverId': {'type': 'string', 'description': "Who gives the quest: an NPC's entryId or exact title (its Quest giver link). On update an empty string removes it."}, 'gmNotes': {'type': 'string', 'description': 'Replaces the GM-only notes, in Markdown.'}, 'rewards': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': "The chip to rewrite, as get_mnemon's quest.rewards[].id names it. Omit for a new chip."}, 'kind': {'enum': ['currency', 'xp', 'item', 'other'], 'type': 'string', 'description': 'currency | xp | item | other. Makes this a reward chip â\x80\x94 send it on every reward.'}, 'unit': {'type': 'string', 'description': "currency chips: the coin, as the campaign's setting names it (e.g. coin.gp), or free text such as 'gold'."}, 'label': {'type': 'string', 'description': "What the chip says: an item's name, a favour, a title."}, 'notes': {'type': 'string', 'description': 'Retired reward row: notes.'}, 'amount': {'type': 'number', 'description': 'How many: coins, experience points, a stack.'}, 'hidden': {'type': 'boolean', 'description': 'true hides the chip from players, false shows it; omitted keeps what it has (a new one is shown).'}, 'itemId': {'type': 'string', 'description': 'Retired reward row: a free-text item reference.'}, 'entryId': {'type': 'string', 'description': 'item chips: the mnemon entry it links to (entryId or exact title). Not with ruleEntryId.'}, 'unitLabel': {'type': 'string', 'description': "How the coin reads, e.g. 'Gold piece'."}, 'rewardType': {'type': 'string', 'description': 'Retired reward row, without kind: Gold | Item | XP | Reputation â\x80¦'}, 'ruleEntryId': {'type': 'string', 'description': 'item chips: the rules-library entry it links to. Not with entryId.'}, 'linkedStepIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Retired reward row: the stepIds or subquest entry ids that unlock it.'}}, 'additionalProperties': False}, 'description': 'Replaces the reward chips; an empty list clears them. Name an existing chip by id to keep it.'}, 'expiresAt': {'type': 'string', 'description': 'Retired quest board field (ISO-8601).'}, 'background': {'type': 'string', 'description': 'Replaces the Background section, in Markdown.'}, 'issuerText': {'type': 'string', 'description': 'Retired quest board field: write it into background.'}, 'locationId': {'type': 'string', 'description': "Where the quest is given or set: a Location's entryId or exact title. On update an empty string removes it."}, 'objectives': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string', 'description': "The objective to rewrite, as get_mnemon's quest.objectives[].id names it. Omit for a new objective."}, 'text': {'type': 'string', 'minLength': 1, 'description': 'The objective, one line of Markdown. Mentions: @[label](mnemon:<entryId>).'}, 'state': {'enum': ['open', 'done', 'failed'], 'type': 'string', 'description': 'open (the default), done or failed.'}, 'hidden': {'type': 'boolean', 'description': 'true hides it from players, false shows it; omitted keeps what it has (a new one is shown).'}, 'children': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string', 'description': "The objective to rewrite, as get_mnemon's quest.objectives[].id names it. Omit for a new objective."}, 'text': {'type': 'string', 'minLength': 1, 'description': 'The objective, one line of Markdown. Mentions: @[label](mnemon:<entryId>).'}, 'state': {'enum': ['open', 'done', 'failed'], 'type': 'string', 'description': 'open (the default), done or failed.'}, 'hidden': {'type': 'boolean', 'description': 'true hides it from players, false shows it; omitted keeps what it has (a new one is shown).'}, 'optional': {'type': 'boolean', 'description': "An optional objective does not count toward the quest's progress. Defaults to false."}}, 'additionalProperties': False}, 'description': 'Its sub-objectives, in order. Omitted keeps the ones it has; an empty list removes them.'}, 'optional': {'type': 'boolean', 'description': "An optional objective does not count toward the quest's progress. Defaults to false."}}, 'additionalProperties': False}, 'description': 'Replaces the objective list. Name an existing objective by id to keep it and what the GM wrote under it; one left out is removed. To tick one objective, use set_quest_objective_state instead.'}, 'repeatable': {'type': 'boolean', 'description': 'Retired quest board field.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'questStatus': {'type': 'string', 'description': 'Retired: send status.'}, 'parentQuestId': {'type': 'string', 'description': "The quest this one belongs to: a Quest's entryId or exact title. On update an empty string removes it."}, 'playersCanTick': {'type': 'boolean', 'description': 'Whether players may tick the objectives they can see. Off by default.'}, 'issuerNpcEntryId': {'type': 'string', 'description': 'Retired quest board field: send giverId.'}, 'subQuestEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': "This quest's subquests (entryIds or titles). Prefer parentQuestId on each subquest."}, 'relatedNpcEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'NPCs the quest involves (entryIds or titles).'}, 'relatedLocationEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Locations the quest involves (entryIds or titles).'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'sessionId'], 'properties': {'endAt': {'type': 'string', 'description': 'ISO-8601 instant.'}, 'title': {'type': 'string'}, 'startAt': {'type': 'string', 'description': 'ISO-8601 instant.'}, 'sessionId': {'type': 'string', 'minLength': 1, 'description': 'Session ID.'}, 'campaignId': {'type': 'string', 'minLength': 1, 'description': 'Campaign ID.'}, 'description': {'type': 'string'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'campaignId', 'title', 'startAt'], 'properties': {'id': {'type': 'string'}, 'endAt': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'guildId': {'type': ['string', 'null']}, 'startAt': {'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'campaignId': {'type': 'string'}, 'description': {'type': ['string', 'null']}, 'invitedUserIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'createdByUserId': {'type': ['string', 'null']}, 'invitedPartyIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'attendanceReplies': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['entryId'], 'properties': {'date': {'type': 'string'}, 'loot': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Items, treasure, or rewards acquired.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'combats': {'type': 'array', 'items': {'type': 'object', 'required': ['description'], 'properties': {'outcome': {'type': 'string', 'description': 'How it resolved, e.g. "party victorious, no casualties".'}, 'description': {'type': 'string', 'minLength': 1, 'description': 'Who fought whom and where, in one sentence.'}}, 'additionalProperties': False}, 'description': 'Combat encounters that took place this session.'}, 'entryId': {'type': 'string', 'minLength': 1, 'description': 'Mnemon entry id (hex) or exact title.'}, 'visibility': {'enum': ['HIDDEN', 'INTERNAL', 'PUBLIC'], 'type': 'string'}, 'majorEvents': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Significant story beats, in chronological order.'}, 'openThreads': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Unresolved threads and cliffhangers as of session end.'}, 'previouslyOn': {'type': 'string', 'description': 'Where each player ended â\x80\x94 read aloud at the top of the next session.'}, 'npcsMentioned': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Name as referenced in the session, e.g. "Captain Mira".'}, 'role': {'type': 'string', 'description': 'Role played this session, e.g. "quest-giver", "rescued captive".'}}, 'additionalProperties': False}, 'description': 'NPCs that appeared or were referenced. This is descriptive only â\x80\x94 to link one to an existing NPC mnemon, call create_mnemon_relationship with SESSION_ATTENDEE_NPC.'}, 'partyEndState': {'type': 'object', 'description': 'Character display name -> short end-of-session status line.', 'additionalProperties': {'type': 'string'}}, 'sessionNumber': {'type': 'integer'}, 'partyDecisions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Meaningful choices that will shape future sessions.'}, 'suggestedTitle': {'type': 'string', 'description': 'Short evocative title for the session, like a TV episode title.'}, 'detailedSummary': {'type': 'string', 'description': 'Full narrative summary, 3-5 paragraphs.'}, 'oneSentenceSummary': {'type': 'string', 'description': 'Single-sentence TL;DR of what happened.'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'campaignId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'success'], 'properties': {'error': {'type': 'string'}, 'index': {'type': 'number'}, 'title': {'type': 'string'}, 'entryId': {'type': 'string'}, 'success': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'failedOpIndex': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
apex-x1
Provides X1 and Arc token screening, liquidity and exit-risk checks, wallet and bridge data, non-custodial token operations, comm…
spriteship
Generates and manages 2D game characters, assets, animations, tilesets, UI packs, maps, and engine-ready exports for multiple gam…
Moddable Games Tools
Provides chess analysis and puzzles, board and hex-map generation, dice and probability utilities, card decks, scoring, and other…
NOT FOR HUMANS
Provides NFT ownership and marketplace status, wallet-based agent identity and claims, public agent learning records, and multipl…
Clash Royale
Provides Clash Royale player, clan, war, card, ranking, and location data, along with broader structured research and data-routin…
Steam
Provides Steam data for apps, games, profiles, friends, ownership, achievements, player statistics, news, concurrent players, and…
Bungie
Provides Destiny 2 and Bungie.net data for manifests, profiles, characters, clans, loadouts, linked accounts, and historical game…