The mount report needs parent relationships based on path components. Implement the dependency analysis so similarly named paths do not create false parent-child relationships.
Build the implementation in Rust 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 distinct canonical absolute POSIX mount paths. Root / is valid. Other paths must have no trailing slash, empty, dot or dot-dot components or backslashes. Return records path/parent ordered by path depth then lexicographically. Parent is the longest listed proper ancestor path, or null. /data is not an ancestor of /database. Reject duplicate or malformed paths.
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.