- "explanation": "#### Notes\n\nThe search syntax is the same between the `Card` and `Printing` endpoints aside from some fields that only exist in one or the other. \n\nIn constructed URLs for calls to the API, ensure that you URL Encode the value to the `filter[search]` argument. \n\n#### Search Query Structure\n\n* A search query is a series of one or more conditions separated by one or more spaces (which acts as an implicit `and`) or explicit conjuctions (`and` and `or`):\n * `condition1 condition2 condition3` - gets all cards that meet the requirements of all three conditions\n* Multiple values for a given term can be provided with `|` ( acts as `or`) or `&`. \n * `text:\"Runner is tagged\"&meat` will return all cards with both `Runner is tagged` and `meat` in their text. \n * `text:\"Runner is tagged\"|meat` will return all cards with either `Runner is tagged` or `meat` in their text.\n* Each condition must be some or all of the name of a card or a criteria search:\n * `Street` - gets all cards with \"Street\" in their name\n * `x:credit` - gets all cards with \"credit\" in their ability text (see below for the full list of accepted criteria)\n* Note that conditions containing spaces must be surrounded with quotation marks:\n * `\"Street Magic\"` or `x:\"take all credits\"`\n* Negation operators\n * In addition to using a match or negated match operator (like `faction!anarch`), you can preface any condition with `!` or `-` to negate the whole condition.\n * `f:adam -card_type:resource` will return all non-resource Adam cards.\n * `f:apex !card_type:event` will return all non-event Apex cards.\n* Conjunctions and grouping\n * Explicit `and` and `or` conjunctions are supported by the Search Syntax.\n * `t:identity and f:criminal` will return all Criminal Identities.\n * Explicit parenthesis will control grouping.\n * `(f:criminal or f:shaper) and t:identity` or `(f:criminal or f:shaper) t:identity` will return all Criminal or Shaper Identities.\n * A literal `and` or one using a space will have a higher precedence than an `or`.\n * `f:criminal or f:shaper and t:identity` and `f:criminal or f:shaper t:identity` will return all Criminal cards and Shaper Identities.\n\n#### Field Types and Operators\n\nThere are 5 types of fields in the Search Filter:\n\n* **Array** - supports the `:` (an element in the array is an exact match) and `!` (an element in the array is not an exact match) operators.\n * `card_pool_ids:eternal|snapshot` returns all cards in the eternal or snapshot card pools. \n * `card_pool!snapshot` returns all cards not in the snapshot card pool.\n* **Boolean** - supports the `:` (match) and `!` (negated match) operators. `true`, `false`, `t`, `f`, `1`, and `0` are all acceptable values.\n * `advanceable:true`, `advanceable:t`, and `advanceable:1` will all return all results where advanceable is true.\n* **Date** - supports the `:` (match), `!` (negated match), `<`, `<=`, `>`, and `>=` operators. Requires date in `YYYY-MM-DD` format.\n * `release_date<=2020-01-01` will return everything with a release date less than or equal to New Year's Day, 2020.\n* **Integer** - supports the `:` (match), `!` (negated match), `<`, `<=`, `>`, and `>=` operators. Requires simple integer input.\n * For cards that have an X value, you can match with X, like `cost:X` (case insensitive). an X value is treated as -1 behind the scenes.\n* **String** - supports the `:` (LIKE) and `!` (NOT LIKE) operators. Input is transformed to lower case and the `%` decorations are added automatically, turning a query like `title:street` into a SQL fragment like `LOWER(stripped_title) LIKE '%street%`.\n * `title:clearance` returns everything with clearance in the title.\n * `title!clearance` returns everything without clearance in the title.\n\n\n### Fields and their types\n* **card_cycle**: Type: array\n * `card_cycle_id`s for printings of a card.\n* **card_pool**: Type: array\n * `card_pool_id`s for a card pool containing a card.\n* **card_set**: Type: array\n * `card_set_id` for a card, pulled in via printing.\n* **card_subtype**: Type: array\n * text names for card subtypes, matched as lowercase.\n* **card_subtype_id**: Type: array\n * `card_subtype_id`s for the card.\n* **eternal_points**: Type: array\n * Concatenation of `restriction_id` and an Eternal Points value, joined by a hyphen, like `eternal_points:eternal_points_list_22_09-2`.\n* **format**: Type: array\n * `format_id` for any format containing the card at any time.\n* **has_global_penalty**: Type: array\n * `restriction_id` restricting the card with a global penalty, like `has_global_penalty:napd_mwl_1_1`.\n* **is_banned**: Type: array\n * `restriction_id` specifying the card as banned, like `is_banned:standard_ban_list_22_08`.\n* **is_restricted**: Type: array\n * `restriction_id` specifying the card as banned, like `is_restricted:standard_mwl_3_4_b`.\n* **printing_id**: Type: array\n * `printing_id` for any printing of this card.\n* **restriction_id**: Type: array\n * `restriction_id` specifying the card for any reason, like: `restriction_id:eternal_points_list_22_09`\n* **snapshot**: Type: array\n * `snapshot_id` of a snapshot containing a card.\n* **universal_faction_cost**: Type: array\n * Concatenation of `restriction_id` and a Universal Faction Cost value, joined by a hyphen, like `universal_faction_cost:napd_mwl_1_2-3`.\n* **additional_cost**: Type: boolean\n * Does the card text specify an additional cost to play?\n* **advanceable**: Type: boolean\n * Is the card advanceable?\n* **gains_subroutines**: Type: boolean\n * Does the card text allow for adding or gaining subroutines?\n* **in_restriction**: Type: boolean\n * Is the card specified on any Restriction list?\n* **interrupt**: Type: boolean\n * Does the card have an interrupt ability?\n* **is_unique, u**: Type: boolean\n * Is the card unique?\n* **on_encounter_effect**: Type: boolean\n * Does the card text specify an on encounter effect?\n* **performs_trace**: Type: boolean\n * Does the card perform a trace?\n* **rez_effect**: Type: boolean\n * Does the card have a rez effect?\n* **trash_ability**: Type: boolean\n * Does the card provide a trash ability?\n* **release_date, date_release, r**: Type: date\n * The earliest release date for a card or the release date for the set for a printing.\n* **advancement_cost, g**: Type: integer\n * The `advancement_cost` value for an agenda. Accepts positive integers and X (case-insensitive).\n* **agenda_points, v**: Type: integer\n * The printed number of agenda points for the agenda.\n* **base_link, l**: Type: integer\n * The printed link value for an Identity.\n* **cost, o**: Type: integer\n * The printed cost of a card. Accepts positive integers and X (case-insensitive).\n* **influence_cost, n**: Type: integer\n * The influence cost or number of influence pips for the card.\n* **link_provided**: Type: integer\n * The amount of link provided.\n* **memory_usage, m**: Type: integer\n * The memory (MU) cost of this card.\n* **mu_provided**: Type: integer\n * The amount of memory (MU) provided by the card.\n* **num_printed_subroutines**: Type: integer\n * The number of printed subroutines on this card.\n* **num_printings**: Type: integer\n * Count of unique printings for this card.\n* **recurring_credits_provided**: Type: integer\n * The number of recurring credits provided by this card. Accepts integers or X.\n* **strength, p**: Type: integer\n * The strength of the card.\n* **trash_cost, h**: Type: integer\n * The trash cost of this card.\n* **attribution**: Type: string\n * The designer of this card text, if specified.\n* **card_type, t**: Type: string\n * `card_type_id` of this card.\n* **faction, f**: Type: string\n * `faction_id` of this card.\n* **side, d**: Type: string\n * `side_id` of the card.\n* **text, x**: Type: string\n * The text of a card, stripped of all formatting symbols and marks.\n* **title, _**: Type: string\n * The title of a card, stripped of all formatting symbols and marks.",
0 commit comments