{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=dotisacat/playoffs-standings@0.2.1","method":"GET","rel":"https://rote.dev/rels/bootstrap-and-run","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"inspect":{"command":"rote play inspect https://play.modiqo.ai/dotisacat/playoffs-standings@0.2.1","effect":"read-only"},"installCliOnly":{"effect":"installs the rote CLI, nothing else","href":"https://play.modiqo.ai/install","method":"GET","rel":"https://rote.dev/rels/install-cli","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"run":{"command":"rote play run https://play.modiqo.ai/dotisacat/playoffs-standings@0.2.1","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/dotisacat/playoffs-standings@0.2.1 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"Live standings for the Modiqo public Play registry: total plays and owners, top-N by lifetime downloads, everything published in the last H hours, and per-owner aggregates. Every run also compares itself against your last run and shows what changed since then -- plays that newly appeared (with age), the biggest download gainers, and any references that vanished; the first run just saves a baseline. Set author to track one publisher's own plays with rank, downloads, and delta. Fetches the live endpoint with retry and falls back to the cached feed with a labeled warning instead of failing (urllib chokes on this CDN's chunked responses; the proven path is curl --compressed). Read-only against the registry; saves only a small snapshot under its own run workspace so the next run can show you what changed. Plays are tracked by owner/name across version bumps: a bump shows as UPDATED, never as one play GONE plus one NEW, and the saved baseline keeps each play's high-water download count so the registry's ~10-minute","distribution":{"digest":"sha256:931c63e4dc69539f7d83b0b540ec831ee9d3d0c7710bbfbdaa48e53405b60cce","mediaType":"application/vnd.modiqo.rote-flow","size":16091,"verifiedBy":"rote verifies the downloaded archive against this digest before it runs"},"effects":{"credentialsProvidedBy":"runner","credentialsRemainLocal":true,"declaredWrites":[],"publisherReceivesCredentials":false},"id":"https://play.modiqo.ai/dotisacat/playoffs-standings@0.2.1","inputPolicy":{"optionalWithDefault":"show_default_and_accept_override","optionalWithoutDefault":"omit_unless_supplied","required":"ask","secrets":"collect_locally_outside_conversation"},"links":{"docs":"https://rote.dev","page":"https://play.modiqo.ai/dotisacat/playoffs-standings@0.2.1","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/dotisacat/playoffs-standings@0.2.1.json"},"name":"playoffs-standings","owner":{"kind":"user","slug":"dotisacat"},"parameters":[{"default":15,"description":"How many Plays to show in the downloads ranking (1-100)","example":15,"input":{"allowCustom":true,"choices":[],"label":"Limit"},"name":"limit","required":false,"type":"integer"},{"default":48,"description":"Look-back window in hours for the recently-published list","example":48,"input":{"allowCustom":true,"choices":[],"label":"Recent hours"},"name":"recent_hours","required":false,"type":"integer"},{"description":"Track one author: their plays get a YOUR PLAYS section with rank + downloads + delta. Empty string means off.","example":"dotisacat","input":{"allowCustom":true,"choices":[],"label":"Author"},"name":"author","required":false,"type":"string"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/dotisacat/playoffs-standings@0.2.1 --json","effect":"read-only"},"step":1,"type":"inspect_local_readiness"},{"references":["/parameters"],"step":2,"type":"collect_parameters"},{"references":["/parameters","/requirements","/effects"],"step":3,"type":"review"},{"consentBoundary":"the user approves the exact play and parameter values","references":["/parameters","/requirements","/effects"],"step":4,"type":"obtain_run_consent"},{"action":{"command":"rote play run https://play.modiqo.ai/dotisacat/playoffs-standings@0.2.1","headlessCommandTemplate":"rote play run https://play.modiqo.ai/dotisacat/playoffs-standings@0.2.1 <name=value...> --yes"},"preservesAcquisitionBoundaries":["adapter_selection","oauth_dcr","google_discovery","static_token_setup","runtime_security_checks"],"requiresConsent":true,"step":5,"type":"run"}],"producedBy":{"roteVersion":"0.77.0"},"publishedAt":"2026-09-02T21:13:38.253751+00:00","reference":"dotisacat/playoffs-standings@0.2.1","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"localTools":["python3","curl"],"roteCli":{"minimumVersion":"0.62.0"},"sessions":false},"resolution":"pinned","schema":"rote.play.v1","stats":{"downloads":7,"installs":0},"steps":{"count":2,"names":["compute_standings","probe_endpoint"]},"title":"playoffs-standings","type":"play","version":"0.2.1","visibility":"public"}