The territory report needs connected regions on an axial-coordinate hex board. Implement the survey using the board's actual neighbor relationships rather than square-grid adjacency.
Build the implementation in C++ under /app, with /app/run.sh as its entry point. Read one JSON request from standard input and write one JSON result to standard output. Input is a list of unique or repeated integer axial coordinates [q,r]. Cells are adjacent at offsets (1,0),(-1,0),(0,1),(0,-1),(1,-1),(-1,1). Deduplicate cells. Return component sizes descending and perimeter, counting each occupied-to-unoccupied hex edge once.
Reject inputs that violate an explicit validation rule with exit status 2, no standard output, and {"error":"invalid_input"} on standard error. For valid input, exit with status 0. Keep the implementation reusable for new inputs; it must work offline and must not depend on the example data being the only data it receives.
Repair or replace the unfinished /app/run.sh and add source files under /app. Malformed JSON must use the same invalid-input response. Do not read /tests or /oracle from the application.