To solve this problem, we first need to convert the natural language description into a symbolic representation. Let's denote:

- $x_1$ as the number of units of Kommand game sold,
- $x_2$ as the number of units of Kontrol game sold.

The objective function is to minimize the total cost incurred by selling these games. For each unit of Kommand, the cost is $11, and for each unit of Kontrol, the cost is $3. Therefore, the objective function can be represented algebraically as:

\[ \text{Minimize} \quad 11x_1 + 3x_2 \]

The constraints are as follows:
1. The total budget constraint: The GameShop owner pays $14 for each unit of Kommand and $8 for each unit of Kontrol, with a maximum daily budget of $500.
   - Algebraic representation: \(14x_1 + 8x_2 \leq 500\)
2. The customer attraction constraint: At least 200 customers need to be attracted into the store daily. Given that each unit of Kommand attracts 20 fans and each unit of Kontrol attracts 5 fans, we have:
   - Algebraic representation: \(20x_1 + 5x_2 \geq 200\)
3. Non-negativity constraints: The number of units of games sold cannot be negative.
   - Algebraic representations: \(x_1 \geq 0\) and \(x_2 \geq 0\)

Now, let's represent this problem symbolically as requested:

```json
{
    'sym_variables': [('x1', 'number of units of Kommand game sold'), ('x2', 'number of units of Kontrol game sold')],
    'objective_function': 'Minimize 11*x1 + 3*x2',
    'constraints': ['14*x1 + 8*x2 <= 500', '20*x1 + 5*x2 >= 200', 'x1 >= 0', 'x2 >= 0']
}
```

To solve this linear programming problem using Gurobi in Python, we'll use the following code:

```python
from gurobipy import *

# Create a new model
m = Model("GameShop_Optimization")

# Define variables
x1 = m.addVar(name='Kommand', vtype=GRB.CONTINUOUS, lb=0)
x2 = m.addVar(name='Kontrol', vtype=GRB.CONTINUOUS, lb=0)

# Set the objective function
m.setObjective(11*x1 + 3*x2, GRB.MINIMIZE)

# Add constraints
m.addConstr(14*x1 + 8*x2 <= 500, name='Budget_Constraint')
m.addConstr(20*x1 + 5*x2 >= 200, name='Customer_Attraction_Constraint')

# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print(f"Optimal solution found. Buy {x1.x} units of Kommand and {x2.x} units of Kontrol.")
else:
    print("No optimal solution found.")
```