Here's my ideas on what could be added to the Magic Set Editor now that we have a way to build it. Obviously these don't necessarily have to happen in this exact order, so for example a bugfix could also land in 2.0.3, 2.1.1, 3.0.1, etc.
- fix off-by-one error when working with
cardin the Console tab (instead of using the card selected in the Cards tab, it uses the one below it)- there's a possibly related error where you can't get planeswalker cards as
card, that should be fixed as well
- there's a possibly related error where you can't get planeswalker cards as
- fix
lengthnot working with maps - better RTL language support (see MightyD33r#5246's issues with making a Hebrew template)
- fix
substring("foo", begin: 3)returningtrueinstead of"" - fix Cards tab card render not updating when styling data is changed
- allow empty map literal
[:](like in Swift) - give styles access to the flavor bar position (the position of the separator in a
combined_editorfield) - add a
typebuilt-in function that returns the type of its input as a string - allow access to the current date/time
- allow
to_image(card)and passing cards as input tocropetc (this removes the need for an external DFC splitter tool) - add a function/operator to check whether a map has a field
- allow calling an export template from the command line (this is already in the
svn_historybranch) - allow searching the style list
- “shiny” (gradient) borders (for gold/silver/bronze) (these might be doable already, not sure)
- console history with arrow keys
- monospace font and syntax highlighting in console
- tooling for external IDEs (syntax highlighting, lints, jump-to-definition, etc.)
- tooltips on template list for long titles/subtitles
- allow “scale down to” on single-line text fields, to make “shrink type line” etc redundant
- option to sync text size on multiple fields, to make explicit planeswalker text size redundant
- possibly redundant with ability to locate the flavor bar?
- import scripts (equivalent to exporters, to replace MSG)
- don't require MSE reload after export template changes
- self-updater
- macOS and Linux builds
- allow rotating the image in the image importer
- support for bulleted lists (with proper indentation after soft line breaks)
- allow access to a card's styling data in scripts
- make
.mse3seta directory file extension, allow reading.mse3set.zipas well - use card names and proper file extensions for image files
- remove unused images
- suffix
.mse-{type}/{type}file with.msefile extension for editor support (syntax highlighting etc) - allow versioning packages
- notify when updates are available
- better dependency management (something similar to what Rust's Cargo.lock does maybe)
- allow upgrade paths including handling of new defaults (e.g. Ancestral generic mana, brown legendary Vehicle P/T)
- bundle a link to a default package repository with MSE, so that it works as a standalone
.exewithout a data folder
- rename “HTML” export menu item to something clearer like “other”
- allow space indentation in data files
- maybe: modernize the scripting language
- remove weak typing features in favor of better explicit type conversion tools
- document what on earth is going on with
\<, remove/replace it if it's not useful - improve debugging and error handling
- allow importing MSE 2 code from MSE 3 code and vice versa, like with Rust editions
- drop the special case that allows
=instead of:=when unambiguous with==due to precedence
- rework exporters to generate either a file or a directory, not both
- generate a lockfile to prevent simultaneous edits, e.g. when collaborating over Dropbox or Google Drive
- instead of saving a .bak file, persist edit history on disk (and add an option to export without edit history)
- maybe some way to visualize edit history
- give exporters access to edit history and allow revision options, to facilitate writing a changelog exporter
- real-time collaboration
- requires a server component where sets can be hosted
- login to tag edits with your username (could use the same accounts as a package repository, maybe just use Discord OAuth)
- edit locking on a per-card basis instead of per-set
- invisible field support (to replace card notes commands)
- link related cards so the link is displayed on both cards
- this is different from just implementing them as style options since they ignore the “options specific to this card” toggle and are always specific
- allow assigning card fields explicitly in styles, e.g.
card.name := "some other string"
somecard.stylesheet.name, except that this crashes MSE right now.or elsekeyword. So you try to use it and if that fails you do something else, But that is not ideal.[:]doesn't make sense. If the types are split it would.to_jsonfunction?.mseset,.msescript,.msedata, etc., but I am not sure if it is worth the effort.