From 39d77a301b7977dc2b4f33962ac21c5e88a17917 Mon Sep 17 00:00:00 2001
From: neilmjain <69025896+neilmjain@users.noreply.github.com>
Date: Thu, 15 Oct 2026 18:01:27 -0400
Subject: [PATCH] add properties to merge groups of options on one page
---
MiraAPI/GameOptions/AbstractOptionGroup.cs | 26 ++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/MiraAPI/GameOptions/AbstractOptionGroup.cs b/MiraAPI/GameOptions/AbstractOptionGroup.cs
index b62b803..52d8fdf 100644
--- a/MiraAPI/GameOptions/AbstractOptionGroup.cs
+++ b/MiraAPI/GameOptions/AbstractOptionGroup.cs
@@ -67,6 +67,32 @@ public abstract class AbstractOptionGroup
///
public virtual string RoleGuideTitle => GroupName;
+ ///
+ /// Gets the key used to combine this group with other option groups on one Match Info Guide page.
+ /// Groups are combined only with groups from the same plugin that use the same non-empty key.
+ ///
+ public virtual string? MatchInfoGuidePageKey => null;
+
+ ///
+ /// Gets the title of the Match Info Guide page. For groups sharing a page key, the first
+ /// group in menu order supplies the page title.
+ ///
+ public virtual string MatchInfoGuidePageTitle => RoleGuideTitle;
+
+ ///
+ /// Gets the ordering priority of this Match Info Guide page. Lower values appear first
+ /// among pages with the same menu category and group priority. Groups sharing a page key
+ /// use the lowest page-order value among those groups.
+ ///
+ public virtual int MatchInfoGuidePageOrder => int.MaxValue;
+
+ ///
+ /// Gets the number of columns used to lay out options on this Match Info Guide page.
+ /// For a combined page, groups are placed into these columns. Values are limited to 1-6;
+ /// for groups sharing a page key, the first group in menu order supplies this value.
+ ///
+ public virtual int MatchInfoGuidePageColumns => 2;
+
///
/// Gets the group . This is used to color the group in the options menu.
///