(define (domain warehouse-navigation)
    (:requirements :strips :typing :non-deterministic)
  
  (:types location)
  
  (:predicates 
   (robot-at ?l - location)
   (connected ?from ?to - location))
  
  ;; TODO: Define move action
  ;; Movement can succeed or fail (robot stays in place)
  (:action move
           :parameters (?from ?to - location)
           :precondition (and 
                          (robot-at ?from) 
                          (connected ?from ?to))
           :effect (and
                    (not (robot-at ?from))
                    (oneof 
                     (robot-at ?to)      ; success
                     (robot-at ?from)))) ; failure: stays in place
  )
