The Raw DSL Editor
The visual builder is designed for most use cases, but sometimes you want to type a rule directly — especially if you're pasting a rule someone shared with you, or you're comfortable working with a text-based syntax.
The Raw DSL Editor lets you write and edit rules as text using HippoLink's Domain-Specific Language (DSL).
Switching to Raw Mode
- Select a rule in the Rule List.
- In the canvas header, click the Edit button (the code icon). The visual builder is replaced by a text editor.

To switch back to the visual builder, click the Visual button.
The Text Editor
The editor shows a large text area where you can type or paste a rule.

Syntax placeholder:
IF TCGPLAYER_LOW_NM >= 10.00 AND CONDITION IS 'NM'
THEN SET PRICE TCGPLAYER_LOW_NM ADJUST -10%
DSL Syntax Quick Reference
Every rule follows this pattern:
IF <conditions> THEN SET PRICE <source> [ADJUST ...] [LIMIT ...] [GUARD ...]
Conditions
| Type | Syntax | Example |
|---|---|---|
| Price comparison | VARIABLE OPERATOR VALUE |
TCGPLAYER_LOW_NM >= 1.00 |
| Attribute check | ATTRIBUTE OPERATOR 'VALUE' |
CONDITION IS 'NM' |
| Date comparison | DATE_VAR OPERATOR DATE_VALUE |
OLDEST_COPY_INSERTION_DATE < FOUR_WEEKS_AGO |
| Null check | VARIABLE IS_NULL or IS_NOT_NULL |
TCGPLAYER_LOW_NM IS_NOT_NULL |
| Combine | AND, OR, parentheses |
(A OR B) AND C |
String values must be in single quotes: 'NM', 'FOIL', 'EN'.
Actions
| Part | Syntax | Example |
|---|---|---|
| Set price | SET PRICE VARIABLE |
SET PRICE TCGPLAYER_LOW_NM |
| Fixed price | SET PRICE NUMBER |
SET PRICE 0.99 |
| Fallback chain | SET PRICE FIRST_DEFINED(A, B, C) |
SET PRICE FIRST_DEFINED(TCGPLAYER_LOW_NM, CARDKINGDOM_RETAIL_NM, 0.99) |
| Adjust | ADJUST ±AMOUNT% or ±AMOUNT$ |
ADJUST -10% or ADJUST +1$ |
| Limit | LIMIT MIN X and/or MAX Y |
LIMIT MIN 0.25 MAX 500.00 |
| Guard | GUARD MAX_DECREASE X% MAX_INCREASE Y% |
GUARD MAX_DECREASE 15% MAX_INCREASE 25% |
Comparison Operators
>=, <=, >, <, =
Attribute Operators
IS, IS_NOT, IN, NOT_IN
For multi-value: CONDITION IN ('NM', 'LP')
Validating Your Rule
After typing or editing a rule, click Validate & Apply. The system sends the text to the server for validation.
- If valid: the parsed rule is applied and you're switched back to the visual builder, where you can see your rule rendered as cards.
- If invalid: an error message appears below the editor explaining what went wrong (e.g., "Unexpected token at position 42"). Fix the issue and try again.
The Cancel button discards any text changes and returns to the visual builder without modifying the rule.
When to Use Raw DSL
- Sharing rules: copy the DSL text and send it to a colleague. They can paste it into their editor.
- Bulk rule creation: type multiple rules quickly without dragging and dropping.
- Debugging: if a rule built visually isn't behaving as expected, switching to raw mode shows exactly what the system sees.
- Complex expressions: some intricate nested FIRST_DEFINED or parenthesized logic may be faster to type than to build visually.
Variable Names
In raw mode, you use the technical variable names (ALL_CAPS). Here's a mapping of the most common ones:
| Visual Builder Label | DSL Variable Name |
|---|---|
| TCGPlayer Low (NM) | TCGPLAYER_LOW_NM |
| TCGPlayer Market (NM) | TCGPLAYER_MARKET_NM |
| Card Kingdom Retail (NM) | CARDKINGDOM_RETAIL_NM |
| ManaPool Low (NM) | MANAPOOL_LOW_NM |
| Current Price | CURRENT_PRICE |
| Current Quantity | CURRENT_QUANTITY |
| Near Mint | 'NM' |
| Foil | 'FOIL' |
| Condition (attribute) | CONDITION |
For the complete list, see Price Variables Reference and Date Variables Reference.
Formatting Notes
- Rules can span multiple lines — line breaks are treated as spaces.
- Extra whitespace and tabs are ignored.
- Keywords are case-sensitive and must be uppercase:
IF,THEN,AND,SET,PRICE, etc. - Numbers can be integers or decimals:
10,0.25,999.99.
What's Next
- Running Repricing — save and execute your rules.
- Real-World Examples — complete rule examples in both visual and DSL forms.