Creating Rule-Based Lists
Rule-based lists automatically populate with cards matching specific criteria. This guide is for administrators who manage card lists.
When to Use Rule-Based Lists
Rule-based lists are best for:
- Large collections - Lists with hundreds or thousands of cards
- Criteria-based collections - Cards that share specific attributes
- Auto-updating lists - Lists that should update when new cards are added
- Format-based lists - Cards legal in specific formats or meeting format criteria
Examples:
- Reserved List (all cards where isReserved = true)
- Elder Dragons (legendary creatures with “Dragon” subtype matching specific criteria)
- Commander-Legal Mythics (all mythic rares legal in Commander)
- Format Staples by Type (all artifacts legal in Modern)
Available Rule Criteria
Rule-based lists support these filter criteria:
Rarity
Filter by card rarity:
- mythic - Mythic rare cards
- rare - Rare cards
- uncommon - Uncommon cards
- common - Common cards
Example: { "rarity": ["mythic", "rare"] } - All mythic and rare cards
Types
Filter by card types (matches cards with ALL specified types):
- Creature, Artifact, Enchantment, Instant, Sorcery, Land, Planeswalker
- Subtypes: Dragon, Elf, Goblin, Equipment, Aura, etc.
- Supertypes: Legendary, Basic, Snow
Example: { "types": ["Legendary", "Creature", "Dragon"] } - All legendary Dragon creatures
Name Pattern
Filter by card name (case-insensitive partial match):
Example: { "name_pattern": "Mox" } - Matches “Mox Sapphire”, “Chrome Mox”, “Mox Diamond”, etc.
Reserved List
Filter for Reserved List cards:
Example: { "isReserved": true } - All Reserved List cards
Commander Eligibility
Filter for cards that can be used as commanders:
Example: { "commander_eligible": true } - All legendary creatures and other cards with special commander rules
Commander Legality
Filter for cards legal in Commander format:
Example: { "is_commander_legal": true } - All cards legal in Commander (not banned)
Creating a Rule-Based List
As an administrator:
- Navigate to Admin > Lists
- Click New List
- Enter the list name
- Select Rule-Based as the list type
- Write a description
- Click Create List
The list is created in unpublished state.
Defining Rules
After creating the list, define the filter rules:
- Go to the list detail page in the admin area
- Click Edit Rules
- Enter your rules as JSON (see examples below)
- Click Preview to see which cards will match
- Review the preview results
- Click Save Rules
Rule Examples
Elder Dragons List
All legendary Dragon creatures with Dragon subtype:
json
{
"types": ["Legendary", "Creature", "Dragon"]
}
This matches cards like: - Nicol Bolas - The Ur-Dragon - Kolaghan, the Storm’s Fury
Reserved List
All cards on the Reserved List:
json
{
"isReserved": true
}
High-Value Commander Staples
Mythic or rare cards that are commander-legal:
json
{
"rarity": ["mythic", "rare"],
"is_commander_legal": true
}
Mox Cards
All cards with “Mox” in the name:
json
{
"name_pattern": "Mox"
}
Matches: Mox Sapphire, Mox Diamond, Chrome Mox, etc.
Legendary Artifacts
All legendary artifacts:
json
{
"types": ["Legendary", "Artifact"]
}
Reserved List Elder Dragons
Combining multiple criteria (all conditions must match):
json
{
"types": ["Legendary", "Creature", "Dragon"],
"isReserved": true
}
This matches only the original Elder Dragons from Legends that are on the Reserved List.
Rebuilding Lists
Rule-based lists automatically update when: - New cards are added to the database - Card metadata is updated
You can also manually rebuild a list:
- Navigate to the list in the admin area
- Click Rebuild List
- The list will be regenerated based on current rules
This is useful after: - Changing the rules - Importing new card data - Fixing card metadata
Publishing the List
Once your rule-based list is configured:
- Preview the results to verify correctness
- Check that the description explains the list clearly
- Click Publish
The list is now visible to all users!
Previewing Rules Before Saving
Before saving rules, always preview:
- Enter your JSON rules
- Click Preview Rules
- Review the card count and sample cards
- Verify the results match your expectations
- Adjust rules if needed
- Save when satisfied
This prevents publishing incorrect or empty lists.
Common Rule Patterns
By Supertype
json
{
"types": ["Legendary"]
}
By Type and Subtype
json
{
"types": ["Creature", "Elf"]
}
By Rarity and Format
json
{
"rarity": ["mythic"],
"is_commander_legal": true
}
By Name and Type
json
{
"name_pattern": "Jace",
"types": ["Planeswalker"]
}
Troubleshooting
“No cards matched”
- Check your JSON syntax
- Verify field names are correct (
isReserved, notis_reserved) - Try previewing with simpler rules to isolate the issue
- Ensure card database has the metadata you’re filtering on
“Too many cards”
- Add more specific criteria
- Combine filters to narrow results
- Consider splitting into multiple lists
“Rules not updating”
- Click Rebuild List to force regeneration
- Clear browser cache if changes aren’t visible
- Check that rules were saved (not just previewed)
Best Practices
- Test with preview - Always preview before saving rules
- Document clearly - Explain in the description what the rules match
- Start simple - Begin with one criterion, then add more
- Rebuild after changes - Manually rebuild when updating rules
- Monitor card count - Large lists (>1000 cards) may need refinement
Rule-Based vs. Manual Lists
| Feature | Rule-Based Lists | Manual Lists |
|---|---|---|
| Maintenance | Auto-updates | Manual updates required |
| Size | Great for large lists | Best for small lists |
| Flexibility | Limited to available rules | Complete control |
| Order | Alphabetical | Custom ordering |
| Use case | Criteria-based collections | Curated, fixed collections |
Advanced Example: Format Staples
Create a “Modern Red Burn Staples” list:
json
{
"types": ["Instant", "Sorcery"],
"rarity": ["rare", "mythic"],
"is_commander_legal": true
}
Then manually filter by red color identity (when color filtering is added to rules).