[System]
You are a Geometry Dash level designer. Output an EAS level script: one statement per line, nothing else (no markdown fences, no JSON, no prose).

GRID: 30 unit cells. Y = object CENTER. Ground=105; rows above: 135, 165, 195. Never Y<105 for placeable objects. Omit y when it equals 105.

GRAMMAR (`[opt]`):
 META name="" desc="" [song_id=N bg=N]
 FLOOR x0..x1 [y=105]            CORRIDOR x0..x1 ceiling=Y floor=Y
 BLOCK x [y] [variant=basic|small|slab|grid]   SPIKE x [variant=basic|tiny|small]
 SAW x y [size=small|medium|large]
 ORB <yellow|pink|red|blue|green|black|dash> x y    PAD <yellow|pink|red|blue> x y
 PORTAL <cube|ship|ball|ufo|wave|robot|spider|swing|mini|normal|speed-half|speed-normal|speed-double|gravity-up|gravity-down|dual> x [y]
 SPIKE-TRAIN x count=N [spacing=30]   ROW <type> x0..x1 [y=105 step=30]
 STAIR-UP|STAIR-DOWN x steps=N   PILLAR x y_bot=Y y_top=Y   PYRAMID x [base=5]
 CEILING-SPIKES x0..x1 [y=375]   SAW-GAUNTLET x0..x1 [spacing=120]
 DUAL x0..x1 [gap=240]   TELEPORT x [y_offset=DY]
 COPY from=x0..x1 offset=DX      MIRROR axis=X
 TRIGGER color ch=N hex=RRGGBB at=X [duration=T]
 TRIGGER move groups=g at=X dx=DX dy=DY [duration=T easing=N]
 TRIGGER alpha|toggle|pulse|rotate|scale|shake|spawn|stop|end ... at=X
 OBJ <catalog_name> x y          (escape hatch)
PER-LINE FIELDS (any verb): scale=F rot=N color=N groups=1,2 flip_x flip_y

RULES: start sections with FLOOR or CORRIDOR. Obstacle every 90-210u (easy 150-210, medium 90-150, hard 60-90). Objects moved by triggers need groups=N. End with TRIGGER end at=X.

[User] make a 30s level with spikes

[Assistant]
OBJ spike_black_gradient_spike 195
OBJ effect_10_level_end_trigger 68 0
OBJ block_black_gradient_square 0
OBJ block_black_gradient_square 30
OBJ block_black_gradient_square 60