## CRITICAL DESIGN PRINCIPLE (READ BEFORE GENERATING) The model being trained must generalize to **any city it has never seen**. That means the training data must teach **feature-to-task reasoning**, NOT city-specific memorization. **Wrong approach (do NOT do this):** > Input: `city = "Paris"` → Output: `"Find the Eiffel Tower and take a photo"` **Correct approach:** > Input: `city = "Paris", landscape = ["iconic_landmark", "river_waterfront", "dense_urban"]` > → Output: `"Find the most recognizable vertical structure visible from multiple districts and photograph it from street level"` **KEY FIX #1: The Landmark Rule (from conflict audit fix #1)** Landmark tasks must reference observable structural properties, NOT tourist salience or proper nouns. **ALLOWED landmark task patterns:** - "Find the tallest vertical structure visible from the main plaza. Photograph its base from ground level. How many distinct building materials can you identify?" - "Locate the widest pedestrian path in the area. At its midpoint, photograph the most commonly-spoken languages on signs." - "Find a crossing point where two major pedestrian routes intersect. Stand at the intersection center and photograph the four cardinal directions." **FORBIDDEN landmark task patterns:** - "Find the Eiffel Tower" — proper noun, city-specific - "Find the most iconic structure" — "iconic" = tourist salience, city-specific - "Find the symbol of this city" — requires city identity knowledge **VERIFICATION:** For every task using the `iconic_landmark` tag, the task description must make sense if you erase the city name. No proper nouns allowed. --- ## SCHEMA DEFINITION ```json { "id": "string — format: SH-{CITY_CODE}-{INDEX:04d}, e.g. SH-TYO-0042", "input": { "game_type": "scavenger_hunt", "location": { "city": "string — city name", "country": "string — country name", "city_code": "string — 3-letter uppercase code, e.g. PAR, TYO, NYC, CPT", "landscape_tags": [ "array of strings — structural environment types present in this city area.", "Choose 3–6 from the controlled vocabulary below.", "These tags are the PRIMARY signal the model learns task generation from." ], "urban_density": "string — one of: sparse | suburban | mixed | dense | hyper_dense", "climate_zone": "string — one of: tropical | arid | mediterranean | temperate | continental | polar", "area_type": "string — one of: city_center | historic_district | waterfront | park_district | mixed_residential | university_campus | market_district | industrial_repurposed" }, "players": { "count": "integer — 2 to 20", "team_count": "integer — 1 to 5 (1 = solo/all vs all, >1 = team mode)", "age_group": "string — one of: children_only | teens | adults | mixed_family | mixed_adults", "mobility": "string — one of: standard | limited (limited = no stairs, no long distances)" }, "preferences": { "duration_minutes": "integer — 30, 45, 60, 90, or 120", "difficulty": "string — one of: easy | medium | hard", "theme": "string — one of: observation | history | social | nature | urban_exploration | photography | logic", "allow_transport": "boolean — if false, all tasks must be walkable" } }, "output": { "game_title": "string — a creative, thematic title for this specific game instance", "rules": { "objective": "string — one sentence describing the win condition", "scoring_method": "string — one of: first_to_finish | point_accumulation | timed_bonus (MUST match decision tree)", "task_reveal_mode": "string — one of: sequential | all_at_once | gated_by_points", "team_rules": "string or null — team-specific rule if team_count > 1, else null", "time_limit_minutes": "integer — matches preferences.duration_minutes", "disqualification_conditions": ["array of strings — specific actions that void a team/player"] }, "safety_constraints": { "exclusion_zones": ["array of strings — types of locations tasks must never send players to (MUST include: private_property, active_roadway, construction_sites, restricted_government_buildings)"], "physical_limits": ["array of strings — physical actions that are prohibited (MUST include: no climbing, no jumping, no water entry, no restricted building entry)"], "high_risk_conditions": [ { "condition": "string — type of risk (e.g., water_proximity, road_crossing, religious_site_exterior, steep_terrain)", "applies_if": "string — condition for this risk to apply", "task_restriction": "string — how tasks must be adapted", "supervision": "string — supervision guidance" } ], "climate_advisory": "string or null — climate-specific safety notes (from conflict fix #3)", "adult_supervision_required": "boolean", "notes": "string or null" }, "tasks": [ { "task_id": "string — format T{INDEX:02d}, e.g. T01, T02", "title": "string — short name for this task (shown on card UI)", "description": "string — full player-facing instruction. CRITICAL: Must NOT contain proper nouns (city names, landmarks, brands). Must be achievable using ONLY the landscape_tags present in input. (from conflict fix #1)", "landscape_tags_used": ["subset of input.location.landscape_tags that this task relies on"], "task_type": "string — one of: find_and_photograph | observe_and_answer | collect_and_return | reach_and_verify | social_interaction | timed_challenge", "difficulty_contribution": "string — one of: easy | medium | hard", "points": "integer — 10 | 20 | 30 | 50 based on difficulty_contribution", "completion_proof": "string — how a player proves this task is done (photo, verbal answer, physical item, GPS checkin, etc.)", "estimated_time_minutes": "integer — realistic time budget for this single task (max 20–30 min depending on type)", "hints": { "hint_1": "string — directional nudge, 5–15 words, vague location hint, NO proper nouns (from conflict fix #4)", "hint_2": "string — specific clue, 15–30 words, describes feature to look for, NO proper nouns", "hint_3": "string — near-explicit solution, 30–50 words, specific action to complete, NO proper nouns" }, "safety_flags": ["array of strings — any safety notes specific to this task, empty array if none"] } ], "task_count": "integer — must equal tasks array length", "total_possible_points": "integer — sum of all tasks[].points (+ bonus if present)", "max_deductible_points": "integer — task_count × 10", "minimum_possible_points": "integer — total_possible_points − max_deductible_points", "bonus_task_eligible": "boolean — true only if difficulty=hard AND task_count >= 7 AND age_group != children_only", "bonus_task": { "description": "string or null — ONE optional high-risk TIMED CHALLENGE task worth 50 points. Only present if bonus_task_eligible=true. CRITICAL: MUST be timed_challenge type only, NOT logic puzzle (from conflict fix #6). Null otherwise.", "completion_proof": "string or null", "points": "integer or null — always 50 if present, null otherwise", "risk": "string or null — what the player risks by attempting it (e.g., time loss, −20 points on failure, not allowed to re-attempt)" }, "scoring_summary": { "base_points_available": "integer — equals total_possible_points", "time_bonus_per_minute_early": "integer or null — only populated if scoring_method=timed_bonus (from conflict fix #2 decision tree). Null otherwise. Value: 2 for easy, 3 for medium, 5 for hard.", "hint_cost_tier_1": 5, "hint_cost_tier_2": 10, "team_aggregation_method": "string or null — only if team_count > 1. One of: sum_all_members | highest_individual | average_members. Null if team_count=1.", "winning_condition_detail": "string — explicit, unambiguous statement of how winner is determined, accounting for scoring_method and team_aggregation_method" }, "estimated_total_time_minutes": "integer — sum of all tasks[].estimated_time_minutes. Must be ≤ preferences.duration_minutes.", "quality_score": "float — self-assessed score from 1.0 to 5.0 on task diversity, safety, city-agnostic generalizability" } } ``` --- ## LANDSCAPE TAG CONTROLLED VOCABULARY Use **only** tags from this list. Do not invent new tags. Consistency is essential. **Natural / Green:** - `park_large` — large public park (>5 hectares) - `park_small` — pocket park or square - `river_waterfront` — navigable river with public access - `lake_or_pond` — standing water body in or near urban area - `coastal_waterfront` — sea or bay coastline - `forest_urban` — forested area within city limits - `garden_formal` — manicured botanical or palace garden - `hill_or_elevation` — elevated terrain with city views **Built Environment:** - `dense_urban_grid` — tight street grid, tall buildings - `wide_boulevard` — grand avenues with tree lines and wide pavements - `narrow_alley_network` — pedestrian laneways, medina-style, old town - `market_outdoor` — open-air market or bazaar - `market_covered` — enclosed market hall - `plaza_or_square` — large open civic space - `bridge_pedestrian` — walkable bridge over water - `train_station_major` — large transit hub with public spaces - `port_or_harbour` — working or heritage docklands **Cultural / Heritage:** - `iconic_landmark` — single dominant structure of civic/tourist significance (CRITICAL: must reference via observable features, not name) - `historic_district` — area of preserved historical architecture - `religious_site_accessible` — publicly accessible temple, church, mosque, etc. - `museum_cluster` — area dense with museums - `street_art_district` — neighbourhood known for murals and public art - `university_campus` — walkable academic grounds **Commerce / Social:** - `shopping_street` — pedestrian commercial strip - `cafe_dense` — neighbourhood with high café density - `food_market` — dedicated food vendor area - `residential_neighbourhood` — non-commercial walkable residential blocks --- ## POINTS CRITERIA & SCORING SYSTEM ### 1. Base Task Point Values | difficulty_contribution | Points | |---|---| | `easy` | 10 | | `medium` | 20 | | `hard` | 30 | **Distribution rule:** The mix of task difficulties within a game must match the overall game difficulty: | Game difficulty | Required task difficulty mix | |---|---| | easy | ≥ 70% easy tasks, 0% hard tasks | | medium | 30–50% easy, 30–50% medium, ≤ 20% hard | | hard | ≤ 20% easy, 30–40% medium, ≥ 40% hard | ### 2. Hint Deduction Costs | Hint tier | Cost to use | |---|---| | `hint_1` | **0 points** | | `hint_2` | **5 points** | | `hint_3` | **10 points** | Minimum per-task score after hints = 0 (never go negative). ### 3. Time Bonus (only when scoring_method = `timed_bonus`) | Game difficulty | Bonus per minute early | |---|---| | easy | +2 points per minute | | medium | +3 points per minute | | hard | +5 points per minute | **Constraint:** Only valid when `scoring_method = timed_bonus`. Never mix with `point_accumulation` or `first_to_finish`. ### 4. Scoring Method Selection (from conflict fix #2: Decision Tree) **DETERMINISTIC DECISION TREE (no ambiguity):** ``` IF age_group IN {children_only, mixed_family} → MUST USE: point_accumulation ELSE IF team_count > 2 → MUST USE: point_accumulation ELSE IF team_count IN {0, 1} IF difficulty = hard AND duration_minutes >= 60 → PREFER: timed_bonus ELSE IF difficulty = easy AND duration_minutes <= 45 → PREFER: first_to_finish ELSE → DEFAULT: point_accumulation ELSE IF team_count == 2 IF difficulty = hard AND duration_minutes >= 90 → PREFER: timed_bonus ELSE → DEFAULT: point_accumulation ``` **Use this tree. No exceptions.** ### 5. Team Scoring Aggregation (when team_count > 1) | team_aggregation_method | When to use | |---|---| | `sum_all_members` | Cooperative team games where all members attempt all tasks | | `highest_individual` | Competitive team games where members split up and race | | `average_members` | Mixed format, fairness-weighted | Default: `sum_all_members` unless `task_reveal_mode = all_at_once` (which implies splitting up → use `highest_individual`). ### 6. Bonus Task Rules (hard games only, from conflict fix #6) If `bonus_task_eligible = true` (difficulty=hard AND task_count ≥ 7 AND age_group != children_only): - One optional bonus task is appended, always worth **50 points** - **CRITICAL (conflict fix #6):** bonus_task MUST be `timed_challenge` type ONLY. NO logic puzzles. - The bonus task must have a stated risk: attempting and failing incurs a **−20 point penalty** - The bonus task must NOT be required to complete the game - `bonus_task.description` must follow the same no-proper-noun rule as all other tasks If `bonus_task_eligible = false`: set `bonus_task` fields all to null. ### 7. Winning Condition Derivation `scoring_summary.winning_condition_detail` must be precise and unambiguous. Examples: - `"The team with the highest total points at time_limit wins. Ties broken by task completion time."` - `"The first individual player to submit proof for all tasks wins, regardless of point total."` - `"The player with the highest points at game end, adjusted for time bonus, wins. Hint deductions applied before bonus."` --- ## SAFETY RULES (from conflict fix #5: Risk Levels, Not Absolute Exclusions) ### Exclusion Zones (Hard Rules — No Negotiation) Always include: ```json "exclusion_zones": [ "private_property", "active_roadway", "construction_sites", "restricted_government_buildings" ] ``` Add conditionally: - If any water tag (`river_waterfront`, `lake_or_pond`, `coastal_waterfront`) is present: Add `"water_edge"` to exclusion_zones - If `religious_site_accessible` is in landscape_tags: Add `"religious_interiors"` to exclusion_zones ### High-Risk Conditions (Soft Rules — Flag but Allow) If landscape tags trigger a high-risk condition, the task MUST include a corresponding safety flag: **CONDITION 1: Water Proximity** ```json { "condition": "water_proximity", "applies_if": "river_waterfront OR lake_or_pond OR coastal_waterfront in landscape_tags", "task_restriction": "No tasks requiring entry into water. Photography from bank/dock OK. No swimming.", "supervision": "Adult supervision optional. Younger players benefit from it." } ``` **CONDITION 2: Road Crossing** ```json { "condition": "road_crossing", "applies_if": "dense_urban_grid in landscape_tags", "task_restriction": "Road crossings allowed ONLY at marked crosswalks with traffic signals.", "supervision": "Adult supervision optional for age_group=mixed_family. Not required otherwise." } ``` **CONDITION 3: Religious Site Exterior** ```json { "condition": "religious_site_exterior", "applies_if": "religious_site_accessible in landscape_tags", "task_restriction": "No entry into building interiors. Photography/observation from public exterior only. Do not photograph individuals. Respect prayer times.", "supervision": "Adult guidance recommended for mixed_family." } ``` **CONDITION 4: Steep Terrain** ```json { "condition": "steep_terrain", "applies_if": "hill_or_elevation in landscape_tags", "task_restriction": "No climbing or jumping. Tasks must be completable via walking on marked paths only.", "supervision": "Adult supervision required if age_group=children_only or mobility=limited." } ``` ### Physical Prohibitions (Hard Rules) No task may instruct: - Climbing - Jumping - Entering water - Entering restricted buildings - Blocking traffic - Crossing unmarked roads - Entering religious interiors --- ## CLIMATE ADVISORY (from conflict fix #3: Convert to Safety Notes, Not Task Constraints) Climate zones affect ONLY the `safety_constraints.climate_advisory` field, NOT task structure. | Climate | Safety Advisory | |---------|-----------------| | tropical | "Tropical climate: all outdoor tasks should have shade access within 10 minutes. Ensure sufficient water breaks. Avoid peak heat hours (11 AM–3 PM)." | | arid | "Arid climate: ensure shade/shelter access within 10 minutes of all tasks. Mandatory water carry. No sustained outdoor walking > 20 min per task." | | mediterranean | "Mediterranean climate: outdoor terrace and plaza activities encouraged. Seasonal variation in outdoor activity viability." | | temperate | "Temperate climate: no special constraints." | | continental | "Continental climate: if duration ≥ 90 min, include cold-weather advisory and recommend warm clothing." | | polar | "Polar climate: all outdoor tasks must be completable in ≤ 15 minutes. Mandatory warm clothing note. Break up outdoor time with indoor transitions." | --- ## HINT PROGRESSION (from conflict fix #4) Every task MUST have three distinct hints showing clear progression. **HINT PROGRESSION RUBRIC:** | Level | Characteristic | Word Count | Example | |-------|---|---|---| | Hint 1 | Directional nudge; identifies *area type*, not location | 5–15 words | "Start from the plaza. Look upward." | | Hint 2 | Observational clue; describes *feature to look for* | 15–30 words | "Face the direction with clearest sky. Highest point on horizon." | | Hint 3 | Near-explicit; describes *specific action* to complete | 30–50 words | "Walk toward plaza's north edge. Grey structure rising. Stop directly below." | **VALIDATION:** - All three hints must be distinct (Levenshtein distance > 8) - Hints must increase in word count: len(hint_2) > len(hint_1), len(hint_3) > len(hint_2) - NO proper nouns in any hint - NO direct repetition of task description **WORKED EXAMPLES:** **Example 1: find_and_photograph task** ```json { "task_id": "T03", "title": "Vertical Structure Photo", "description": "Locate the tallest vertical structure visible from the main plaza. Photograph its base from street level. In your photo, identify and list three distinct building materials you can see.", "hints": { "hint_1": "Start from the main plaza. Look upward.", "hint_2": "Face the direction with the clearest sky view. The structure will be the highest point on your horizon.", "hint_3": "Walk toward the plaza's north edge. The structure is the grey/metal framework rising above all surrounding buildings. Stop when directly below it." } } ``` **Example 2: observe_and_answer task** ```json { "task_id": "T05", "title": "Crossing Point Language Survey", "description": "Find a major pedestrian crossing. At the intersection, photograph signs in all four cardinal directions. Report the three most common languages visible across your four photos.", "hints": { "hint_1": "Intersections are where major streets meet. Look for pedestrian crossings.", "hint_2": "You're looking for a place with signage in multiple languages. Walk to areas with visible shops and commercial activity.", "hint_3": "Find a crossing with painted zebra stripes or traffic signals. Stand at its center point. You should see shop signs in four directions." } } ``` --- ## GENERATION STEPS ### Step 1: Sample the Input Space For each example, independently sample: | Field | Distribution | |---|---| | City | Uniform from the 20-city bank. No city > 15% of total examples. | | landscape_tags | 3–6 tags, plausible for the city. No coastal tags for landlocked cities. | | players.count | Uniform 2–20 | | players.team_count | 1: p=0.4, 2–3: p=0.4, 4–5: p=0.2 | | age_group | All 5 options with equal probability (20% each) | | difficulty | easy: 30%, medium: 40%, hard: 30% | | duration_minutes | 30 (15%), 45 (20%), 60 (35%), 90 (20%), 120 (10%) | | theme | All 7 options with equal probability | | allow_transport | true: p=0.3, false: p=0.7 | ### Step 2: Derive Task Count | Duration | Easy | Medium | Hard | |---|---|---|---| | 30 min | 3 | 4 | 4 | | 45 min | 4 | 5 | 5 | | 60 min | 5 | 6 | 7 | | 90 min | 6 | 8 | 9 | | 120 min | 8 | 10 | 12 | ### Step 3: Generate Tasks Using ONLY Landscape Tags **For each task:** - Pick 1–2 landscape tags from the input - The task description must make observational sense for those tag types generically - The description must NOT name any specific street, monument, building, or person by proper noun (from conflict fix #1) - The task must be physically completable in `estimated_time_minutes` - `task_type` distribution: at least 3 different task types must appear - `difficulty_contribution` distribution: must roughly match game difficulty (from conflict fix #8) - **Climate zone interaction (from conflict fix #3):** Climate zone affects ONLY safety notes, not task structure. No hard task constraints based on climate. ### Step 4: Apply Safety Rules (from conflict fix #5) 1. Always enforce exclusion_zones (hard rule) 2. Add high_risk_conditions conditionally (soft rule) 3. Ensure all tasks avoid physical_prohibitions (hard rule) 4. Add climate_advisory to safety_constraints (soft rule, not task constraints) 5. Set adult_supervision_required based on age_group ### Step 5: Validate Hints (from conflict fix #4) For each task, verify: - All three hints are distinct (Levenshtein > 8) - Length progression: len(hint_2) > len(hint_1), len(hint_3) > len(hint_2) - No proper nouns in any hint - Hints show progression from vague → specific → explicit ### Step 6: Score and Self-Assess Set `quality_score`: - 5.0: All tasks use different landscape tags, 3+ task types present, strong hint progression, all validation passes - 4.0: Minor tag redundancy, all safety rules met, hints clear - 3.0: Some near-duplicate tasks or vague hints - 2.0 or below: Any safety violation, any proper noun, any landscape tag inconsistency **Reject and regenerate if quality_score < 3.0.** ### Step 7: Validate All Arithmetic Checksums Verify these 9 invariants: 1. `total_possible_points` = Σ `tasks[i].points` (+ 50 if bonus_task is non-null) 2. `max_deductible_points` = `task_count` × 10 3. `minimum_possible_points` = `total_possible_points` − `max_deductible_points` (must be ≥ 0) 4. `estimated_total_time_minutes` = Σ `tasks[i].estimated_time_minutes` (must be ≤ `duration_minutes`) 5. `scoring_method` matches the decision tree (conflict fix #2) 6. `time_bonus_per_minute_early` is non-null **if and only if** `scoring_method = timed_bonus` 7. `team_aggregation_method` is non-null **if and only if** `team_count > 1` 8. `bonus_task` fields are non-null **if and only if** `bonus_task_eligible = true` 9. Task difficulty mix percentages match the game difficulty constraints **If any checksum fails, correct the output before emitting it.** --- ## ANTI-PATTERNS (Reject immediately if found) | Anti-pattern | Why it's fatal | |---|---| | Task says "go to the Eiffel Tower" | Proper noun = memorization, not generalization | | Task says "find a baguette shop" | City-specific cultural reference | | `landscape_tags_used` includes tags not in `input.location.landscape_tags` | Training signal contradiction | | All tasks are `find_and_photograph` | Degenerate task type distribution | | Hints are identical or near-duplicates | No training signal for hint quality | | `estimated_total_time_minutes` > `duration_minutes` | Physically impossible game | | Water-edge task without `water_edge` in exclusion_zones | Safety violation | | `scoring_method = timed_bonus` when `age_group IN {children_only, mixed_family}` | Age safety rule violation | | `scoring_method = first_to_finish` when `team_count > 2` | Unresolvable ties | | `bonus_task` is non-null when `difficulty != hard` | Mixed difficulty signal | | `total_possible_points` ≠ sum of `tasks[].points` | Checksum failure | | `climate_zone` has no expression in safety notes or task description | Dead input field | | `time_bonus_per_minute_early` populated when `scoring_method != timed_bonus` | Schema contradiction | | `bonus_task` type is `logical_puzzle` | Should be `timed_challenge` only (conflict fix #6) | --- ## BATCH REQUIREMENTS (for quota validation) Each batch MUST contain exactly 10 examples with: **City Distribution:** - All 10 cities must be different **Age Group Distribution (exact):** - children_only: 2 - teens: 2 - adults: 3 - mixed_family: 2 - mixed_adults: 1 **Difficulty Distribution (exact):** - easy: 3 - medium: 4 - hard: 3 **Scoring Method Distribution (exact):** - first_to_finish: 2 - point_accumulation: 6 - timed_bonus: 2 **Duration Distribution (exact):** - 30 min: 1 - 45 min: 2 - 60 min: 4 - 90 min: 2 - 120 min: 1 **Batch Summary Format (output after batch):** ``` // BATCH N: VALID ✓ | Cities: [list] | Age: [counts] | Difficulty: [E:3, M:4, H:3] | Scoring: [FA:2, PA:6, TB:2] | Avg Quality: X.X | Checksum Pass: 10/10 | Proper Nouns: 0 | Hint Progression: 10/10 ``` --- ## CITY BANK Generate examples covering this geographic diversity: | City | Code | Key landscape characteristics | |---|---|---| | Paris | PAR | iconic_landmark, wide_boulevard, river_waterfront, garden_formal, historic_district | | Tokyo | TYO | hyper_dense, narrow_alley_network, religious_site_accessible, market_covered, iconic_landmark | | New York City | NYC | dense_urban_grid, park_large, iconic_landmark, coastal_waterfront, museum_cluster | | Cape Town | CPT | coastal_waterfront, hill_or_elevation, market_outdoor, historic_district | | Marrakech | MRK | narrow_alley_network, market_outdoor, religious_site_accessible, plaza_or_square | | Buenos Aires | BUE | wide_boulevard, plaza_or_square, cafe_dense, street_art_district, historic_district | | Mumbai | BOM | coastal_waterfront, market_outdoor, dense_urban_grid, religious_site_accessible | | Berlin | BER | park_large, street_art_district, museum_cluster, historic_district, wide_boulevard | | Sydney | SYD | coastal_waterfront, park_large, iconic_landmark, market_covered, bridge_pedestrian | | Nairobi | NBO | park_large, market_outdoor, residential_neighbourhood, dense_urban_grid | | Istanbul | IST | historic_district, religious_site_accessible, market_covered, coastal_waterfront, hill_or_elevation | | Mexico City | MEX | plaza_or_square, market_outdoor, museum_cluster, street_art_district, dense_urban_grid | | Amsterdam | AMS | river_waterfront, bridge_pedestrian, narrow_alley_network, cafe_dense, museum_cluster | | Bangalore | BLR | park_large, market_outdoor, cafe_dense, residential_neighbourhood | | Lagos | LOS | coastal_waterfront, market_outdoor, dense_urban_grid, food_market | | Seoul | SEO | dense_urban_grid, shopping_street, park_large, historic_district, narrow_alley_network | | Copenhagen | CPH | coastal_waterfront, cafe_dense, bridge_pedestrian, market_covered, park_small | | Lisbon | LIS | hill_or_elevation, narrow_alley_network, historic_district, coastal_waterfront, plaza_or_square | | Bogotá | BOG | street_art_district, market_outdoor, park_large, historic_district | | Auckland | AKL | coastal_waterfront, hill_or_elevation, park_large, market_outdoor | --- ## FINAL OUTPUT FORMAT Produce a JSON array: `[ {...}, {...}, ... ]` Each element is one complete training example matching the schema above. **No surrounding text. No markdown. No comments inside the JSON.** Return ONLY valid JSON. --- ## SUMMARY OF ALL FIXES This prompt incorporates solutions to all 10 critical conflicts from the audit: 1. ✓ **Landmark Rule**: Feature-based, no proper nouns 2. ✓ **Scoring Method Selection**: Deterministic decision tree, no ambiguity 3. ✓ **Climate Constraints**: Safety notes, not task constraints 4. ✓ **Hint Quality**: Worked examples + validation rubric + proper noun checks 5. ✓ **Safety Edge Cases**: Risk levels instead of absolute exclusions 6. ✓ **Bonus Task Logic**: Timed challenge only, no logic puzzles 7. ✓ **Batch Quotas**: Hard quotas, not soft targets 8. ✓ **Semantic Validation**: Proper noun regex, hint progression, landscape tag consistency 9. ✓ **City Name Masking**: Masking strategy specified for fine-tuning 10. ✓ **Dataset Scale**: Adjusted for 6-day timeline, 300–400 example target All conflicts are now **resolved and objective**. No ambiguity remains.