{
  "_readme": "Sho Fi Bil Sahen? content. DISHES: id, emoji, color (red, green, white, brown), tags (dip, garlic, onion, spicy, fried, meat, salad), and a name in each language as it reads inside a sentence ('the hummus' / 'الحمّص'). ORDERS are templates: 'rule' says what is checked (see mezze/rules.js), {a} and {b} are replaced by dish names, and count orders give one text per number. The server only hands out orders that are true for a table it has already built, so every round can be solved. Texts never make a verb agree with {a} or {b}, so any dish fits. TWISTS: 'when' is 'start' (announced with the round) or 'mid' (strikes during it). To add an order, copy one with the same rule and change the text.",

  "signals": ["👍", "👎", "❓", "⚠️", "👉", "❤️", "😱", "✋"],

  "dishes": [
    { "id": "hummus", "emoji": "🥣", "color": "white", "tags": ["dip", "garlic"], "en": "hummus", "ar": "الحمّص" },
    { "id": "tabbouleh", "emoji": "🥗", "color": "green", "tags": ["salad", "onion"], "en": "tabbouleh", "ar": "التبّولة" },
    { "id": "fattoush", "emoji": "🥬", "color": "green", "tags": ["salad", "onion"], "en": "fattoush", "ar": "الفتّوش" },
    { "id": "kibbeh", "emoji": "🧆", "color": "brown", "tags": ["meat", "fried"], "en": "kibbeh", "ar": "الكبّة" },
    { "id": "labneh", "emoji": "🥛", "color": "white", "tags": ["dip"], "en": "labneh", "ar": "اللبنة" },
    { "id": "pickles", "emoji": "🥒", "color": "red", "tags": [], "en": "pickles", "ar": "الكبيس" },
    { "id": "bread", "emoji": "🥖", "color": "brown", "tags": [], "en": "bread", "ar": "الخبز" },
    { "id": "baba", "emoji": "🍆", "color": "brown", "tags": ["dip", "garlic"], "en": "baba ghanouj", "ar": "البابا غنّوج" },
    { "id": "warak", "emoji": "🍇", "color": "green", "tags": [], "en": "grape leaves", "ar": "ورق العنب" },
    { "id": "batata", "emoji": "🥔", "color": "red", "tags": ["spicy", "garlic", "fried"], "en": "batata harra", "ar": "البطاطا الحرّة" },
    { "id": "taouk", "emoji": "🍢", "color": "brown", "tags": ["meat", "garlic"], "en": "shish taouk", "ar": "الشيش طاووق" },
    { "id": "kafta", "emoji": "🍖", "color": "brown", "tags": ["meat", "onion"], "en": "kafta", "ar": "الكفتة" },
    { "id": "sambousek", "emoji": "🥟", "color": "brown", "tags": ["meat", "fried"], "en": "sambousek", "ar": "السمبوسك" },
    { "id": "muhammara", "emoji": "🌶️", "color": "red", "tags": ["dip", "spicy"], "en": "muhammara", "ar": "المحمّرة" },
    { "id": "toum", "emoji": "🧄", "color": "white", "tags": ["dip", "garlic"], "en": "toum", "ar": "التوم" },
    { "id": "halloumi", "emoji": "🧀", "color": "white", "tags": [], "en": "halloumi", "ar": "الحلّوم" }
  ],

  "orders": [
    { "id": "n1", "rule": "near", "en": "Teta wants the {a} right next to the {b}.", "ar": "تيتا بدّها {a} حدّ {b} تماماً." },
    { "id": "n2", "rule": "near", "en": "Khalto says the {a} and the {b} go together. Always have.", "ar": "خالتو بتقول {a} و{b} بينحطّوا حدّ بعض. من زمان هيك." },
    { "id": "n3", "rule": "near", "en": "Jiddo wants the {a} beside the {b}, where his arm reaches.", "ar": "جدّو بدّو {a} حدّ {b}، محل ما بتوصل إيدو." },
    { "id": "n4", "rule": "near", "en": "The neighbor asked for the {a} beside the {b}. Don't ask why.", "ar": "الجارة طلبت {a} حدّ {b}. ما تسألوا ليش." },

    { "id": "a1", "rule": "apart", "en": "Ammo does not want the {a} next to the {b}. They had a fight.", "ar": "عمّو ما بدّو {a} حدّ {b}. متخانقين." },
    { "id": "a2", "rule": "apart", "en": "Mama says: never the {a} beside the {b}.", "ar": "الماما قالت: {a} و{b} مش حدّ بعض، أبداً." },
    { "id": "a3", "rule": "apart", "en": "The {a} must not touch the {b}. Teta's rule.", "ar": "ممنوع {a} حدّ {b}. قانون تيتا." },
    { "id": "a4", "rule": "apart", "en": "Your cousin feels sick seeing the {a} next to the {b}.", "ar": "ابن عمّك بيتضايق إذا شاف {a} حدّ {b}." },

    { "id": "t1", "rule": "tagAway", "tag": "onion", "en": "Ammo hates anything with onion next to the {b}.", "ar": "عمّو ما بيطيق شي فيه بصل حدّ {b}." },
    { "id": "t2", "rule": "tagAway", "tag": "garlic", "en": "Nothing with garlic beside the {b}. Khalto has a date.", "ar": "ولا شي فيه توم حدّ {b}. خالتو عندها موعد." },
    { "id": "t3", "rule": "tagAway", "tag": "spicy", "en": "Nothing spicy next to the {b}. The kids sit there.", "ar": "ولا شي حرّ حدّ {b}. الولاد قاعدين هونيك." },
    { "id": "t4", "rule": "tagAway", "tag": "fried", "en": "No fried food next to the {b}, the doctor said.", "ar": "ممنوع مقالي حدّ {b}. هيك قال الحكيم." },
    { "id": "t5", "rule": "tagAway", "tag": "meat", "en": "The vegetarian cousins sit there: no meat beside the {b}.", "ar": "القرايب النباتيين قاعدين هونيك: ممنوع لحمة حدّ {b}." },

    { "id": "c1", "rule": "colorApart", "color": "red", "en": "No two red dishes touching. It looks like a crime scene.", "ar": "ممنوع صحنين حمر حدّ بعض. بتصير متل مسرح جريمة." },
    { "id": "c2", "rule": "colorApart", "color": "green", "en": "Two green dishes side by side? Teta says no.", "ar": "صحنين خضر حدّ بعض؟ تيتا قالت لأ." },
    { "id": "c3", "rule": "colorApart", "color": "white", "en": "White beside white looks like a hospital. Keep them apart.", "ar": "أبيض حدّ أبيض بيصير متل المستشفى. فرّقوهن." },
    { "id": "c4", "rule": "colorApart", "color": "brown", "en": "No two brown dishes together. The photo needs color.", "ar": "ممنوع صحنين بنّيين حدّ بعض. الصورة بدّها ألوان." },

    { "id": "p1", "rule": "corner", "en": "Put the {a} at a corner. Jiddo sits there.", "ar": "حطّوا {a} عزاوية الطاولة. جدّو قاعد هونيك." },
    { "id": "p2", "rule": "middle", "en": "Put the {a} in the middle, where everyone can reach.", "ar": "حطّوا {a} بنص الطاولة، محل ما الكل بيوصل." },
    { "id": "p3", "rule": "end", "en": "Put the {a} at one end of the table, near Teta.", "ar": "حطّوا {a} عطرف الطاولة، حدّ تيتا." },

    { "id": "r1", "rule": "row", "en": "Baba wants the {a} and the {b} in the same row.", "ar": "البابا بدّو {a} و{b} بنفس الصف." },
    { "id": "r2", "rule": "row", "en": "Same row for the {a} and the {b}. Khalto is taking photos.", "ar": "{a} و{b} بنفس الصف. خالتو عم تصوّر." },

    { "id": "h1", "rule": "has", "en": "Without the {a}, Jiddo goes home.", "ar": "بلا {a}، جدّو بيرجع عالبيت." },
    { "id": "h2", "rule": "has", "en": "Khalto made the {a} herself. On the table, please.", "ar": "خالتو عاملة {a} بإيديها. عالطاولة، إذا بتريدوا." },
    { "id": "x1", "rule": "hasNot", "en": "No {a} today. The neighbor is allergic.", "ar": "اليوم بلا {a}. الجارة عندها حساسية." },
    { "id": "x2", "rule": "hasNot", "en": "Teta burned the {a}. Not on the table today.", "ar": "تيتا حرقت {a}. مش عالطاولة اليوم." },

    { "id": "m1", "rule": "atLeast", "tag": "dip",
      "en": { "2": "At least 2 dips on the table. Bread needs friends.", "3": "At least 3 dips on the table. Bread needs friends." },
      "ar": { "2": "صحنين تغميس عالقليلة. الخبز بدّو رفقة.", "3": "تلات صحون تغميس عالقليلة. الخبز بدّو رفقة." } },
    { "id": "m2", "rule": "atMost", "tag": "fried",
      "en": { "1": "Only 1 fried dish. Teta's cholesterol.", "2": "No more than 2 fried dishes. Teta's cholesterol." },
      "ar": { "1": "صحن مقالي واحد بس. كوليسترول تيتا.", "2": "مش أكتر من صحنين مقالي. كوليسترول تيتا." } },
    { "id": "m3", "rule": "atMost", "tag": "meat",
      "en": { "1": "Only 1 meat dish. It's the end of the month.", "2": "No more than 2 meat dishes. It's the end of the month.", "3": "No more than 3 meat dishes. It's the end of the month." },
      "ar": { "1": "صحن لحمة واحد بس. آخر الشهر.", "2": "مش أكتر من صحنين لحمة. آخر الشهر.", "3": "مش أكتر من تلات صحون لحمة. آخر الشهر." } },
    { "id": "m4", "rule": "atLeast", "tag": "salad",
      "en": { "1": "At least one salad. Somebody here is on a diet.", "2": "Both salads on the table. Somebody here is on a diet." },
      "ar": { "1": "سلطة وحدة عالقليلة. في حدا عامل ريجيم.", "2": "السلطتين عالطاولة. في حدا عامل ريجيم." } },
    { "id": "m5", "rule": "atMost", "tag": "garlic",
      "en": { "1": "Only 1 dish with garlic. We have guests.", "2": "No more than 2 dishes with garlic. We have guests.", "3": "No more than 3 dishes with garlic. We have guests." },
      "ar": { "1": "صحن واحد بس فيه توم. عنّا ضيوف.", "2": "مش أكتر من صحنين فيهن توم. عنّا ضيوف.", "3": "مش أكتر من تلات صحون فيهن توم. عنّا ضيوف." } },
    { "id": "m6", "rule": "atLeast", "tag": "meat",
      "en": { "2": "At least 2 meat dishes, or Ammo will sulk.", "3": "At least 3 meat dishes, or Ammo will sulk." },
      "ar": { "2": "صحنين لحمة عالقليلة، وإلا عمّو بيحرد.", "3": "تلات صحون لحمة عالقليلة، وإلا عمّو بيحرد." } },

    { "id": "g1", "rule": "nearTag", "tag": "dip", "a": "bread", "en": "The bread sits next to a dip. Obviously.", "ar": "الخبز حدّ صحن تغميس. أكيد." },
    { "id": "g2", "rule": "nearTag", "tag": "meat", "en": "Put the {a} next to something with meat. Baba insists.", "ar": "حطّوا {a} حدّ شي فيه لحمة. البابا مصرّ." },
    { "id": "g3", "rule": "nearTag", "tag": "salad", "en": "Put the {a} beside a salad. Balance, says Khalto.", "ar": "حطّوا {a} حدّ سلطة. توازن، قالت خالتو." },

    { "id": "veggie", "rule": "noTag", "tag": "meat", "twist": true, "en": "A vegetarian guest: no meat on the table at all.", "ar": "ضيف نباتي: ممنوع لحمة عالطاولة أبداً." }
  ],

  "twists": [
    { "id": "early", "when": "mid", "icon": "⏰",
      "en": { "name": "Early guests", "text": "The guests are already at the door: only 20 seconds left!" },
      "ar": { "name": "الضيوف بكّروا", "text": "الضيوف صاروا عالباب: باقي 20 ثانية بس!" } },
    { "id": "dark", "when": "mid", "icon": "🕯️",
      "en": { "name": "Power cut", "text": "The electricity is out. The table goes dark for a moment." },
      "ar": { "name": "قطعة كهربا", "text": "راحت الكهربا. الطاولة عتمة شوي." } },
    { "id": "cat", "when": "mid", "icon": "🐈",
      "en": { "name": "The cat", "text": "The cat jumped on the table, and two dishes changed places." },
      "ar": { "name": "البسّة", "text": "البسّة نطّت عالطاولة، وصحنين بدّلوا محلّن." } },
    { "id": "guest", "when": "mid", "icon": "🚪",
      "en": { "name": "One more guest", "text": "An extra guest walked in, with one more order for everyone to see." },
      "ar": { "name": "ضيف زيادة", "text": "فات ضيف زيادة، ومعو طلب جديد الكل شايفو." } },
    { "id": "veggie", "when": "start", "icon": "🥬",
      "en": { "name": "Vegetarian guest", "text": "Someone is vegetarian today: no meat on the table at all." },
      "ar": { "name": "ضيف نباتي", "text": "في ضيف نباتي اليوم: ممنوع لحمة عالطاولة أبداً." } },
    { "id": "quiet", "when": "start", "icon": "🤐",
      "en": { "name": "Mouths full", "text": "Everyone's mouth is full: no signals this round." },
      "ar": { "name": "التمّ مليان", "text": "الكل تمّو مليان: بلا إشارات هالجولة." } },
    { "id": "vase", "when": "start", "icon": "🏺",
      "en": { "name": "Teta's vase", "text": "Teta's vase takes one place on the table. Nobody touches it." },
      "ar": { "name": "مزهرية تيتا", "text": "مزهرية تيتا آخدة محل عالطاولة. ما حدا يقرّب عليها." } },
    { "id": "double", "when": "start", "icon": "✨",
      "en": { "name": "The in-laws", "text": "The in-laws are coming: this round counts double." },
      "ar": { "name": "بيت الحما", "text": "بيت الحما جايين: هالجولة بتنحسب دوبل." } },
    { "id": "slippery", "when": "start", "icon": "🧈",
      "en": { "name": "Butter fingers", "text": "Greasy hands: everyone moves more slowly this round." },
      "ar": { "name": "إيدين مدهنة", "text": "الإيدين مدهنة: الكل أبطأ هالجولة." } }
  ]
}
