The scheduler accepts a restricted minute-field expression and needs the exact trigger minutes. Implement expansion so lists, ranges and steps are interpreted consistently and unsupported expressions are rejected.
Build the implementation in Bash 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 comma-separated string of terms: *, integer n, or inclusive a-b range, optionally followed by /positive_step on * or a-b only. Integers contain decimal digits; minutes must be 0..59 and ranges ascending. Step starts at the range start. Return sorted unique trigger minutes. Reject whitespace, empty terms, out-of-range numbers, reversed ranges or steps on single numbers. This models only a minute field, not a complete cron dialect.
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.