+++ /dev/null
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "http://cweiske.de/ouya-game.schema.json",
- "title": "OUYA game metadata",
- "description": "Game data importable in OUYA API servers.",
- "type": "object",
-
- "required": [
- "packageName",
- "title",
- "releases",
- "media",
- "developer"
- ],
- "additionalProperties": false,
- "properties": {
- "packageName": {
- "description": "Java package names",
- "type": "string",
- "examples": [
- "com.vendor.gamename"
- ]
- },
-
- "title": {
- "description": "Game name",
- "type": "string"
- },
-
- "description": {
- "description": "Text describing the game. Newlines (CRLF) allowed",
- "type": "string"
- },
-
- "players": {
- "description": "How many players can play this game at the same time?",
- "type": "array",
- "items": {
- "type": "number",
- "minimum": 1
- }
- },
-
- "genres": {
- "description": "Categories",
- "type": "array",
- "items": {
- "type": "string",
- "uniqueItems": true,
- "enum": [
- "Adventure",
- "App",
- "Arcade/Pinball",
- "Card/Casino",
- "Dual Stick",
- "Entertainment",
- "Fight!",
- "FPS/Shooter",
- "Kids List",
- "Meditative",
- "Multiplayer",
- "Music",
- "Platformer",
- "Puzzle/Trivia",
- "Racing",
- "Retro",
- "Role-Playing",
- "Short on Time?",
- "Sim/Strategy",
- "Sports",
- "Utility",
- "Video",
-
- "Open Source"
- ]
- }
- },
-
- "releases": {
- "type": "array",
- "items": {
- "type": "object",
- "required": [
- "name",
- "versionCode",
- "uuid",
- "date",
- "url",
- "size",
- "md5sum"
- ],
- "additionalProperties": false,
- "properties": {
-
- "name": {
- "description": "Human readable version number",
- "type": "string",
- "examples": [
- "1.6"
- ]
- },
-
- "versionCode": {
- "description": "APK-internal version code. Run \"aapt dump badging file.apk\", field \"versionCode\"",
- "type": ["string", "null"]
- },
-
- "uuid": {
- "description": "Unique ID for the release. Use uuid-gen to get one",
- "type": "string"
- },
-
- "date": {
- "description": "When the version has been released",
- "type": "string",
- "format": "date|datetime"
- },
-
- "latest": {
- "description": "Marker for the latest release",
- "type": "boolean"
- },
-
- "url": {
- "description": ".apk download link",
- "type": "string",
- "format": "url"
- },
-
- "size": {
- "description": "File size in bytes",
- "type": "number",
- "minimum": 1
- },
-
- "md5sum": {
- "description": "MD5 hash of the .apk file contents",
- "type": "string"
- },
-
- "publicSize": {
- "description": "FIXME",
- "type": "number"
- },
-
- "nativeSize": {
- "description": "FIXME",
- "type": "number"
- }
- }
- }
- },
-
- "media": {
- "type": "object",
- "required": [
- "discover",
- "large"
- ],
- "additionalProperties": false,
- "properties": {
- "discover": {
- "description": "Image for the OUYA discover store. FIXME: Size",
- "type": "string",
- "format": "url"
- },
-
- "large": {
- "description": "Large game cover image for the store details page.",
- "type": "string",
- "format": "url"
- },
-
- "video": {
- "description": "Video for the store details page. Vimeo and Youtube URLs supported",
- "type": "string",
- "format": "url"
- },
-
- "screenshots": {
- "description": "Additional images for the store details page.",
- "type": "array",
- "items": {
- "type": "string",
- "format": "url"
- }
- },
-
- "details": {
- "description": "Images and videos for the details page. Can be in any order. If no detail images and videos are given, the large image, video and screenshots are used instead",
- "type": "array",
- "items": {
- "type": "object",
- "required": [
- "type",
- "url"
- ],
- "additionalProperties": false,
- "properties": {
- "type": {
- "description": "Medium type: image or video",
- "type": "string",
- "enum": ["image", "video"]
- },
-
- "url": {
- "description": "Image URL or video URL. Vimeo and Youtube URLs supported",
- "type": "string",
- "format": "url"
- },
-
- "thumb": {
- "description": "Small preview image",
- "type": "string",
- "format": "url"
- }
- }
- }
- }
- }
- },
-
- "developer": {
- "type": "object",
- "required": [
- "name"
- ],
- "additionalProperties": false,
- "properties": {
-
- "uuid": {
- "description": "Unique ID for the developer",
- "type": "string"
- },
-
- "name": {
- "description": "Developer (company or person) name",
- "type": "string"
- },
-
- "supportEmail": {
- "description": "E-Mail address for support questions",
- "type": "string",
- "format": "email",
- "default": null
- },
-
- "supportPhone": {
- "description": "Telephone number",
- "type": "string",
- "default": null
- },
-
- "founder": {
- "description": "If the developer was an OUYA founder",
- "type": "boolean",
- "default": false
- }
- }
- },
-
- "contentRating": {
- "description": "Which audience is this game for?",
- "type": "string",
- "enum": [
- "Everyone",
- "9+",
- "12+",
- "17+"
- ]
- },
-
- "website": {
- "description": "Game website",
- "type": "string",
- "format": "url"
- },
-
- "firstPublishedAt": {
- "description": "When the game has first been published to the world",
- "type": "string",
- "format": "date|date-time"
- },
-
- "inAppPurchases": {
- "description": "If you can buy things in the game",
- "type": "boolean"
- },
-
- "overview": {
- "description": "FIXME",
- "type": "string"
- },
-
- "premium": {
- "description": "FIXME",
- "type": "boolean"
- },
-
- "rating": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
-
- "likeCount": {
- "description": "Number of likes this game has",
- "type": "number",
- "minimum": 0
- },
-
- "average": {
- "description": "Average rating for this game",
- "type": "number",
- "minimum": 0,
- "maximum": 5
- },
-
- "count": {
- "description": "Number of ratings",
- "type": "number",
- "minimum": 0
- }
- }
- },
-
- "products": {
- "description": "Items that could be bought via the discover store",
- "type": "array",
- "items": {
- "type": "object",
- "required": [
- "identifier",
- "name",
- "description",
- "localPrice",
- "originalPrice",
- "currency"
- ],
- "additionalProperties": false,
- "properties": {
-
- "promoted": {
- "description": "If this product is the currently promoted/visible one",
- "type": "boolean"
- },
-
- "identifier": {
- "description": "Internal key",
- "type": "string",
- "examples": [
- "full_version"
- ]
- },
-
- "name": {
- "description": "Human readable name",
- "type": "string",
- "examples": [
- "Unlock full game"
- ]
- },
-
- "description": {
- "description": "Explanation of the features you will buy",
- "type": "string"
- },
-
- "localPrice": {
- "description": "Current price (maybe discounted)",
- "type": "number"
- },
-
- "originalPrice": {
- "description": "Previous price",
- "type": "number"
- },
-
- "currency": {
- "description": "Three-letter currency code, depending on the player that was logged in",
- "type": "string",
- "enum": ["EUR", "USD"]
- }
- }
- }
- }
- }
-}