(define-map user-badges principal (list 20 uint))
(define-map badge-info uint {name: (string-ascii 32), description: (string-ascii 100)})
(define-data-var badge-counter uint u0)
(define-read-only (get-user-badges (user principal)) (default-to (list) (map-get? user-badges user)))
(define-read-only (get-badge (id uint)) (map-get? badge-info id))
(define-public (create-badge (name (string-ascii 32)) (description (string-ascii 100)))
(let ((id (var-get badge-counter)))
(map-set badge-info id {name: name, description: description})
(var-set badge-counter (+ id u1))
(ok id)))