# Validate a game-mashup release label A download link and a successful play test are different facts. This small Python example keeps them separate. It is a proposed data-validation pattern, not a claim about code currently deployed by Merging Games. All example URLs use the reserved example.com domain. ```python from urllib.parse import urlsplit def https_url(value): parsed = urlsplit(value or "") return parsed.scheme == "https" and bool(parsed.hostname) def validate(record): errors = [] status = record.get("status") allowed = {"author_download", "showcase", "in_development"} if status not in allowed: errors.append("Unknown release status") if not https_url(record.get("source_url")): errors.append("A creator source URL is required") if status == "author_download": if not https_url(record.get("download_url")): errors.append("Author download requires a release URL") if record.get("independently_played") is True: for key in ("tested_build", "tested_platform", "tested_at"): if not record.get(key): errors.append("Missing play-test evidence: " + key) return errors example = { "status": "showcase", "source_url": "https://example.com/creator/demo", "download_url": None, "independently_played": False, } assert validate(example) == [] assert validate({"status": "author_download"}) ``` ## What this checks The validator checks the shape of the record. It rejects an author-download label with no release URL. It also rejects an independently-played claim with no recorded build, platform or test date. A showcase can pass without a download. Development status can pass without a release. ## What this cannot check A syntactically valid HTTPS URL does not establish that a source belongs to the creator. The function does not inspect downloaded files, confirm compatibility or establish ownership. Those checks need separate evidence. A passing record must not be displayed as a security certificate. Keep the original creator page and the date it was checked alongside each listing. When a release disappears, retain that history and revise the current status. Do not infer that a video is playable merely because its title says download. I maintain [Merging Games](https://merging.games/), a free directory of game mashups and crossover mods. The directory distinguishes author download listings, showcases with play unverified, and projects in development. This example explains one way to avoid turning missing evidence into a stronger release claim.