Skip to main content

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

  1. Select a rule in the Rule List.
  2. In the canvas header, click the Edit button (the code icon). The visual builder is replaced by a text editor.

The Edit button to switch to raw DSL mode

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.

The raw DSL editor with a sample 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