(define-map refund-requests uint {escrow-id: uint, requester: principal, amount: uint, reason: (string-ascii 100), status: (string-ascii 20)})
(define-data-var request-count uint u0)
(define-read-only (get-request (id uint)) (map-get? refund-requests id))
(define-public (request-refund (escrow-id uint) (amount uint) (reason (string-ascii 100)))
(let ((id (var-get request-count)))
(map-set refund-requests id {escrow-id: escrow-id, requester: tx-sender, amount: amount, reason: reason, status: "pending"})
(var-set request-count (+ id u1))
(ok id)))
(define-public (approve-refund (id uint))
(match (map-get? refund-requests id)
r (begin (map-set refund-requests id (merge r {status: "approved"})) (ok true))
(err u404)))