# Compressed occupancy grid chunk — published to /fleet/maps by each robot.
# Receivers merge this into the fleet-wide map.

builtin_interfaces/Time stamp
string                  robot_id         # originating robot
string                  map_frame        # typically "map" in robot's namespace
uint32                  seq              # monotonically increasing per robot

# Compressed OccupancyGrid (zlib-deflate of nav_msgs/OccupancyGrid serialisation)
# Full message serialisation preserves header, info (resolution, origin, width, height)
# and data fields. Receivers decompress with zlib.inflate.
uint8[]                 compressed_map   # zlib-compressed serialised OccupancyGrid
uint32                  uncompressed_size

# Map metadata (duplicated for quick filtering without decompression)
float32                 resolution       # metres/cell
float32                 origin_x         # map origin in robot's map frame
float32                 origin_y
uint32                  width            # cells
uint32                  height           # cells

# Transform: robot_map_frame → fleet common frame (filled by coordinator)
# identity until landmark matching aligns the frames
geometry_msgs/Transform map_to_fleet_tf
bool                    tf_valid         # false until transform is established
